Jak poprawnie odczytać dane korzystając ze strumieni z pliku tekstowego w pętli while
tak, żeby ostatni wiersz się nie dublował?
Napisałem prosty program:
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
int main() {
ifstream in;
in.open("test.txt");
if(!in.is_open()) {
cerr << "Nie można otworzyć pliku test.txt do odczytu!" << endl;
return EXIT_FAILURE;
}
int n;
while(!in.eof()) {
in >> n;
cout << n << endl;
}
in.close();
return EXIT_SUCCESS;
}
W pliku test
napisałem 3 liczby. Każda w nowym wieszu. W ostatnim (trzecim) wierszu jest tylko liczba bez przejścia do nowej linii. Jak dam Enter to nic nie zmienia. Jak zamienię pętlę while
na do while
to również nic to nie zmienia.
Jako wynik oczekiwałbym żeby na ekranie pojawiły się również trzy liczby każda w nowym wierszu. Lecz dzieje się tak, że ostatnia liczba się dubluje. Nie wiem dlaczego i jak temu zaradzić.
Jak poprawić kod, żeby ostatnia linijka w pliku test.txt
się nie dublowała?