C ++简单文件读取

时间:2009-10-19 04:09:59

标签: c++

我有一个名为f1.txt的文件,其内容是 75 15 85 35 60 50 45 70

这是我的代码,用于读取每个整数并打印它们。

#include <iostream>
#include <fstream>

using namespace std;
int main(int argc, char *argv[])
{
  fstream file("f1.txt", ios::in);
  int i;
  while(!file.eof()) {
    file >> i;
    cout << i << " ";
 }

return 0;
}

但是当我编译并运行程序时,输出是 75 15 85 35 60 50 45 70 70。 为什么它两次读取最后一个整数?有线索吗?

2 个答案:

答案 0 :(得分:6)

尝试:

while(file >> i)
    cout << i << " ";

答案 1 :(得分:4)

std :: stream在读取失败之前不设置eof(),因此一个修复是:

while (file >> i, !file.eof()) cout << i << " ";