Mam problem z wczytywaniem z pliku. Zapisuję do pliku strukturę drzewa bajt po bajcie. Potem próbuję ją odczytać i dzieje się coś dziwnego. Inicjuję:
ifstream infile;
infile.open(path);
Natomiast do odczytywania wykorzystuję pętlę:
while(!infile.eof()) {
Problem polega na tym, że pętla robi o jeden przebieg więcej niż trzeba. Tzn. jak odczytam tyle bajtów ile jest w pliku (sprawdziłem rozmiar na dysku i zliczam w zmiennej ile bajtów wczytuję) to .eof() zwraca false, natomiast jak tylko wczytam jeszcze jeden bajt (czyli taki, którego w pliku już nie ma) to .eof() zwraca true.
Czy takie zachowanie się programu jest normalne/wytłumaczalne czy raczej ja coś źle zliczam? (co jest bardzo mało prawdopodobne, bo tworzę pliki po kilkanaście bajtów i debuguję linia po linii)