Witam. Mam tylko jedno pytanie.
Skąd program ma wiedzieć przy odczytywaniu całego pliku że ma odczytywać następne linijki tekstu?
Na jednym z kursów c++ jest taki kod:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ifstream plik("C:/Nanoc/plik.txt");
if(plik)
{
// Udało się otworzyć plik, a więc można rozpocząć odczytywanie
string linia; // Zmienna do przechowywania odczytanych wierszy tekstu
while(getline(plik, linia)) // Jeśli jeszcze nie nastąpił koniec pliku, czytamy dalej
{
cout << linia << endl; // Wyświetlamy odczytany tekst w konsoli
// Można też zrobić z nim coś innego
}
}
else
{
cout << "BŁĄD: nie można otworzyć pliku do odczytu." << endl;
}
return 0;
}
Niby jest linijka: while(getline(plik, linia)) // Jeśli jeszcze nie nastąpił koniec pliku, czytamy dalej
ale skąd program wie że ma przejść do następnej linijki, a nie odczytuje ponownie tą samą linijkę?
Nie ma tu przecież żadnego licznika, ile wierszy jest w pliku.
while przecież przyjmuje wartość warunkową true albo false, a nie sprawdza ile linijek tekstu jest, i ile mu zostało jeszcze do odczytania.
Mógłby mi to ktoś wyjaśnić, jak to działa?