Czy metoda eof() musi wczytać endl, żeby zwrócić wartość false?
Ostatnio zmodyfikowano 2016-04-24 18:30
Monika90 |
» 2016-04-24 13:28:22 Jeżeli ostatnia linia w pliku kończy się \n, tak jak powinna, to się pętla wykona jeden raz więcej. |
|
Lucas535 Temat założony przez niniejszego użytkownika |
» 2016-04-24 13:29:45 #include <iostream> #include <fstream> using namespace std;
int main() { char napis[ 50 ]; fstream fout; fout.open( "abc.txt", ios::out ); fout << "wiersz 1" << endl; fout << "wiersz 2" << endl; fout << "wiersz 3"; fout.flush(); ifstream fin; fin.open( "abc.txt" ); while( !fin.eof() ) { cout << "diag\n"; fin.getline( napis, 50 ); cout << napis << endl; } fin.close(); fout.close(); return 0; }
Jeżeli ostatnia linia w pliku kończy się \n, tak jak powinna, to się pętla wykona jeden raz więcej. |
Czyli tyle razy ile jest wierszy. |
|
carlosmay |
» 2016-04-24 13:35:19 Czyli tyle razy ile jest wierszy. |
W tym przypadku tak. Weźmy pod uwagę sytuację gdy zapisujesz do pliku w pętli. Czy będziesz dodawał warunek aby ostatni wiersz zapisał się bez przejścia do nowej linii? edit. Czytanie danych w pętli ma sens, gdy wiersze lub części pliku są powtarzalne. Jeśli nie są, trzeba znać strukturę pliku i dopasować się do niej. |
|
Lucas535 Temat założony przez niniejszego użytkownika |
» 2016-04-24 13:44:02 Moim zdaniem pusty wiersz to też wiersz i powinno się go także odczytywać, więc ja tu nie widzę problemu.
Dzięki wielkie za pomoc w sprawie bufora, nie wpadłem na to domykanie bufora. Teraz wszystko działa jak należy. |
|
mateczek |
» 2016-04-24 18:30:40 Moim zdaniem pusty wiersz to też wiersz i powinno się go także odczytywać |
Aleś ty uparty!!! ludzie Ci dobrze piszą a ty dalej swoje!!! Nie chodzi o pusty wiersz tylko o nieprawidłowo/prawidłowo zakończony. Twoja pętla przy prawidłowo zakończonym wierszu czyta jeden więcej bo dopiero w następnej iteracji odczyta koniec pliku (eof). Gdy wiersz będzie prawidłowo zakończony odczyta ci 1 wiersz więcej. Prawidłowe zakończenie wiersza na windows to \r\n a nie samo \n |
|
1 2 « 3 » |