无法获取存储在向量结构中的信息
Posted
技术标签:
【中文标题】无法获取存储在向量结构中的信息【英文标题】:Trouble getting the info stored in the structures in the vector 【发布时间】:2012-12-03 02:08:22 【问题描述】:我的功能有问题,它应该打印出存储的书籍列表
void PrintBooklist(vector<BookList>&book)
for(int i=0; i<book.size(); i++)
if (book[i].memNumBor = -1)
cout<<book[i].title<<endl;
但它会打印出单词“Title;”几次,但将其留空。我检查最后的大小以确保添加的任何内容都被推回,但我无法读出它。提前致谢!
int main()
vector<BookList>book;
vector<MemInfo>member;
string memberfile;
string bookfile;
ofstream fout;
ifstream fin;
cout << "\n\t\t\tWelcome to Library Management Services!"<<endl<<endl;
Read_Member(member, fin, memberfile);
Read_Book(book, fin, bookfile);
SignIn(member, book, fin, fout, memberfile, bookfile);
return 0;
void Read_Member(vector<MemInfo> &member, ifstream &Fin, string &memberfile)
MemInfo temp;
cout<<"Please enter the name of the file that contains the member information: ";
getline(cin,memberfile);
Fin.open(memberfile.c_str());
if(Fin.fail())
cout<<endl<<"File containing the member information does not exist.\n"<<endl;
exit (0);
ReadInfoMem(Fin);
while (!Fin.eof())
member.push_back(temp);
ReadInfoMem(Fin);
Fin.close();
for (int i=0; i<member.size(); i++)
cout<<endl<<member[i].lName<<endl;
【问题讨论】:
【参考方案1】:你行分配 memNumBor
if (book[i].memNumBor = -1)
你想要的是平等检查
if (book[i].memNumBor == -1) // note the double '=='
更新:
编辑添加更多代码后,我注意到以下内容:
MemInfo temp;
// ...snip...
ReadInfoMem(Fin); // presumably this reads the member info from 'Fin'?
while (!Fin.eof())
member.push_back(temp); // and you add an *empty* 'temp' object to 'member'
ReadInfoMem(Fin);
我预计正在发生的事情是您正在从 ReadInfoMem
中的 Fin
读取到本地 MemInfo
变量中,但是您没有将填充的 MemInfo
返回到您的封闭函数中,该函数将其添加到您的member
向量。
我建议按值返回,或按引用传递。
按值返回
MemInfo ReadInfoMem(ifstream& fs)
MemInfo temp;
// populate temp
return temp;
// in your calling code:
temp = ReadInfoMem(Fin);
参考传递
void ReadInfoMem(ifstream& fs, MemInfo& temp)
// populate temp
// in your calling code:
ReadInfoMem(Fin, temp);
【讨论】:
非常感谢!我没有抓住那个。谢谢 :) 我认为我的问题在于 Read_Member 函数,读取成员函数阻止它工作,因为那里什么都没有。我确定它被拾起,但在推回后它不在向量中。这是有问题的部分。我刚刚添加了其余的代码。再次感谢您以上是关于无法获取存储在向量结构中的信息的主要内容,如果未能解决你的问题,请参考以下文章
无法从 Flutter Firebase 中的 DocumentReference 获取 DownloadURL 或 StorageReference