Результаты поиска
Найдено результатов: 1
Чтение из текстового файла до EOF повторяет последнюю строку
Следующий код 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
Примечание: Я пропустил весь код проверки ошибок, чтобы сохранить небольшой фрагмент кода. Вышеописанное поведение наблюдается на Windows (Visual C++), cygwin (gcc) и Linux (gcc).