c++读取文本文件为什么总会多读最后一行?求高手指教!!!

2024-12-15 11:20:37
推荐回答(3个)
回答1:

文件的最后一个字符是文件结束符,隐藏的,就像字符数组的'\0'。假如文件中有“1,2,3,4”四个数字,读到4的时候,eof()判断出这不是文件结束符,因此返回0,再读一个字符,发现到头了,读到了文件结束符,cin不读入任何数据,eof()返回1。这和文件指针的工作方式有关,读完了4它还是指在4上,在读一个字符文件指针才往后挪到文件结束符上。多读一行的话你减掉就可以了。

回答2:

这个很简单 解决过很多此类问题了

文件读写 和折腾字符串本人比较擅长

有两种方法可以解决

1 修改程序

判断如果长度小于3 并且第一个是\n的忽略

2 修改文本内容格式

在空行回车处 向上删除一下

例如

11111
22222
33333
光标在这里

按一下删除

111111
222222
333333光标这里

回答3:

什么意思啊??