W jaki sposób wykryć koniec pliku?

PL
Data dodania: 2011-09-21, Autor: Karol, Wyświetleń: 467

Często operując na plikach zachodzi potrzeba wczytania całego zbioru w pętli. Wówczas bardzo często pojawia się kod podobny do poniższego.

while(!feof(file)) {
    fread(..., file);
    // ...
}

Niestety nie jest to prawidłowe rozwiązanie. Funkcja feof() nie sprawdza bowiem czy pozycja wewnątrz pliku znajduje się na końcu tylko czy ustawiona jest flaga EOF. Flaga ta ustawiana jest natomiast w momencie dojścia do końca pliku za pomocą innych funkcji operujących na zbiorach. Żeby zatem feof() zwróciło true wcześniej musi być wywołana np. funkcja fread(). Z tego względu znacznie lepszym rozwiązaniem jest użycie kodu jak poniżej:

while(true) {
    fread(..., file);
    if(feof(file)) break;
    // ...
}

 


Aby dodawać komentarze musisz być zalogowany!


Kontakt

Jeśli chcesz się z nami skontaktować napisz na adres: info(at)binboy.org lub odwiedź nasz profil na Facebooku!

O Nas

Serwis binboy.org to kopalnia wiedzy dla wszystkich z branży IT, w szczególności dla programistów i webmasterów. To duży zbiór kursów programowania, tutoriali, darmowych ebooków, setki kodów źródłowych itp.

Bądź w kontakcie

Panel użytkownika

Zaloguj się do panelu użytkownika.
Nie masz konta? Zarejestruj się!
Zapomniałeś hasła?