不懂就问
C++
在这里插入代码片 //输出函数 void Addres::Show() { if (Abook.size()==1) { } else { for (auto itb = Abook.begin(); itb != Abook.end(); ++itb) { cout << "用户姓名:" << setw(7) << itb->first << setw(16) << "用户电话:" << itb->second << endl; } cout << endl; } } //构造函数 Addres::Addres() { fstream file(M, ios::in); if (!file.is_open()) { fstream file(M, ios::out); } else { while (file) { pair<string, string> User; file >> User.first >> User.second; Abook.insert(User); } } file.close(); } //txt文件内容 //方靖雅 1343272355 // 张龙 13434482398
这样读txt文件 ,为什莫最后结果是
调试半天发现构造函数在读取文件时,会读取到第三行,将 User.first 和User.second赋值为空。(本来文件读写都不是太懂,现在更不懂了,求大佬)
还有一种情况就是
而产生的文件如下:
haha 5 lala
hehe 5 lele
hihi 5 lili
huhu 5 lulu
读文件运行结果:
haha 5 lala
hehe 5 lele
hihi 5 lili
huhu 5 lulu
huhu 5 lulu
最后一行信息重复
根据网上所查资料,问题应该是当我选择feof判断文件是否结束时 文件最后的回车符也被读入
求解决方案