测试代码如下:
#include#include using namespace std; int main(){ fstream in("text.txt"); in<<"anbcd"; in.close(); in.open("text.txt"); while(!in.eof()){ char c=in.get(); cout< text文本里的内容如下:
a bcd输出结果并不是:
a bcd而是
a bcd' '最后一个字符无法显示,其实就是' '空字符
in.eof()判断的结尾并不是以遇见空字符为结束标志,而是“真正”读完所有字符后才认为时结尾!所以in.get()会把字符串末尾的空字符读取进来!
正确做法如下:
while(in.peek()!=EOF){ char c=in.get(); cout<空字符的数值是-1,只要判断不是-1就行了,EOF值正是-1



