搞不明白的读文件问题,涉及到eof成员函数,很棘手哦!
...
int main()
{
ifstream fin;
char next; // ******
fin.open("File.txt");
if (fin.fail())
{
cout<<"Input file opening failed.\n";
exit(1);
}
fin>>next;
while (!fin.eof())
{
cout<<next<<" ";
fin>>next;
}
fin.close();
return 0;
}
文件File.txt中的内容是1 2 3 4
程序输出为:1 2 3 4
但是如果// ******处改为 int next;其他地方都不变,输出则是:1 2 3
我在while循环里置个计数器,发现next是char类型时,循环里面的语句执行了4次,而当next为int类型时,循环里面的语句只执行了3次,为何是int型时就少执行了一次呢?我想造成这种结果的缘由应该是eof()的工作原理。
望达人详细讲解下其中的原因,感谢万分!