в основном:
ifstream file("text.txt");
string line;
while (file) {
file>>line;
cout<<line<<endl;
}
в text.txt:
hello
goodbye
выход:
hello
goodbye
goodbye
Почему последняя строка печатается дважды?
Дублирование: Когда вы читаете «до свидания» в первый раз, вы не знаете, что достигли конца файла и переходите к следующей итерации. Тогда не читать, получить eof
бит установлен, но распечатывает текущее значение line
, который остается «до свидания».
Других решений пока нет …