问下各位大虾C++知识,为什么会文件会多读一次?搞不懂。

2020-09-29 综合 75阅读
eof()返回true时是读到文件结束符0xFF,而文件结束符是最后一个字符的下一个字符,因此,当读到最后一个字符时,程序会多读一次(编译器会让指针停留在最后一个字符那里,然后重复读取一次,这也就是就上面最后一个字符会输出两次的原因。
那么这时我们只要用while(fin.peek() != EOF)就可以解决。peek()是文件流中用来读取文件指针下一位置的值,但指针仍然在当前位置而不是跳到一下位置
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com