Я написал следующий код для чтения содержимого файла:
#include <ifstream>
#include <iostream>
using namespace std;
int main(){
char file_name[30] = "data.txt";
// Create an ifstream to read the file.
ifstream People_in(file_name);
while (1) {
if (People_in.eof())
break;
People_in >> first_name >> last_name >> age;
cout << endl << "First Name: " << first_name;
cout << endl << "Last Name: " << last_name;
cout << endl << "Enter Age: " << age;
cout << endl;
}
People_in.close();
return 0;
}
data.txt content:
FirstName1
LastName1
1
FirstName2
LastName2
2
FirstName3
LastName3
3
Результат, который я ожидал:
First Name: FirstName1
Last Name: LastName1
Age: 1
First Name: FirstName2
Last Name: LastName2
Age: 2
First Name: FirstName3
Last Name: LastName3
Age: 3
Но вывод:
First Name: FirstName1
Last Name: LastName1
Age: 1
First Name: FirstName2
Last Name: LastName2
Age: 2
First Name: FirstName3
Last Name: LastName3
Age: 3
First Name: FirstName3
Last Name: LastName3
Age: 3
Не могу понять, почему?PeopleIn должен достигнуть eof, когда он прочитает все данные.Но как это может повторить последние 3 строки ??