从文件和矢量中获取数据
get data from file and vector
我想检索文本文件中的所有数据,所以我将读取向量 1st,然后显示所有数据。文本文件中的第一个数据我可以正确获取它,但是文本文件中的第二个数据,用户名无法检索并且它消失了。这是文本文件数据...
1|管理员|管理员|管理员|男|123|123|123|
1|杰夫|杰夫|杰夫|男|123|123|123|
在我显示所有数据之后...它变成这样
1 管理员 管理员 管理员 男 123123 123
1 杰夫 杰夫 男 123 123 123
谁能帮我解决??谢谢
void Admin::displayMemberInfo(vector <Member> &memberProfile)
{
if(loginSucceed == true)
{
int memberID, age;
string username, password, name, gender, contact, ic;
memberProfile.erase(memberProfile.begin(),memberProfile.end());
ifstream inMember("Member.txt");
while(!(inMember.eof()))
{
string name,gender,contact, ic, username, password;
int age,memberID;
string readID,readAge;
getline(inMember,readID,'|');
istringstream(readID)>>memberID;
getline(inMember,username,'|');
getline(inMember,password,'|');
getline(inMember,name,'|');
getline(inMember,gender,'|');
getline(inMember,readAge,'|');
istringstream(readAge)>>age;
getline(inMember,contact,'|');
getline(inMember,ic,'|');
inMember.ignore(numeric_limits<streamsize>::max(), '|');
//if(username != "")
//{
// Member member(memberID, username, password, name, gender,age, contact, ic);
// memberProfile.push_back(member);
//}
cout<<memberID<<username<<password<<name<<gender<<age<<contact<<ic<<endl;
}
inMember.close();
system("pause");
}
}
您需要更改此行
inMember.ignore(numeric_limits<streamsize>::max(), '|');
自
inMember.ignore(numeric_limits<streamsize>::max(), 'n');
哦,是的,我忘了,你重新声明变量。
尝试整个功能并告诉我它是否更好用:
void Admin::displayMemberInfo(/* vector <Member> &memberProfile */) {
int memberID, age;
string username, password, name, gender, contact, ic;
//memberProfile.erase(memberProfile.begin(),memberProfile.end());
ifstream inMember("Members.txt");
if(inMember.fail()) return;
while(!(inMember.eof())) {
string readID,readAge;
getline(inMember,readID,'|');
istringstream(readID)>>memberID;
getline(inMember,username,'|');
getline(inMember,password,'|');
getline(inMember,name,'|');
getline(inMember,gender,'|');
getline(inMember,readAge,'|');
istringstream(readAge)>>age;
getline(inMember,contact,'|');
getline(inMember,ic,'|');
inMember.ignore(numeric_limits<streamsize>::max(), 'n');
//if(username != "")
//{
// Member member(memberID, username, password, name, gender,age, contact, ic);
// memberProfile.push_back(member);
//}
cout<<memberID<<username<<password<<name<<gender<<age<<contact<<ic<<endl;
}
inMember.close();
system("pause");
}
您还在函数和 while 循环中重新声明变量。我为我的测试注释掉了矢量的东西。
我的输入文件是
1|admin|admin|admin|Male|123|123|123|
2|jeff|jeff|jeff|Male|123|123|123|
以新行终止。 输出为
1adminadminadminMale123123123
2jeffjeffjeffMale123123123
相关文章:
- C++ - 忽略并从其他文件获取数据
- 如何从网站获取数据并将其传输到数据库?
- 与多个 for 循环与单个 for 循环 wrt 相关的性能从多映射获取数据
- 如何从 CSV 获取数据并将其存储在 C++ 中的表对象中
- 获取 R 数据帧的内存地址
- C++ 如何从虚拟类的模板化子类中获取数据?
- 如何在C++中使用带有SFML的http reqest从节点.js服务器获取数据?
- 连接到远程存储库并获取数据
- 使用WiFi.h从WiFiClient ESP32获取数据
- CSV文件未从缓冲区获取数据
- C++从双指针获取数据
- C++ 从文件中获取数据时使用 strcpy 和 strcmp 按字母顺序对数组进行排序?
- 使用 Recvfrom 获取数据
- C 编程:在循环时运行 2 并从 loop1 获取数据的随机结果
- 复制构造函数并从方法中获取数据
- 如何在运行时从平面缓冲区获取数据值和数据类型
- 在C J2ME中读取Excel文件,并从ITQ获取数据
- 如何通过NodeMCU从Web获取数据
- 获取数据QFUTUREWATCHER
- 从文件中获取数据时如何放置换行符?