下面的C++代码使用ifstream对象从文本文件(每行一个数字)中读取整数,直到命中EOF。为什么它读取最后一行的整数两次?如何解决这个问题?
代码:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream iFile("input.txt"); // input.txt has integers, one per line
while (!iFile.eof())
{
int x;
iFile >> x;
cerr << x << endl;
}
return 0;
}
input.txt
10
20
30
输出
10
20
30
30
注释:我跳过了所有的错误检查代码,以保持代码片段较小。上述行为在视窗(Visual C++)、cygwin (gcc)和Linux (gcc)上都可以看到。
https://stackoverflow.com/questions/21647
复制相似问题