2021-04-18

2021/4/18 10:57:25

本文主要是介绍2021-04-18,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

不懂就问
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判断文件是否结束时 文件最后的回车符也被读入

求解决方案



这篇关于2021-04-18的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程