Determinare la fine di un file, funzione feof

Una volta aperto un file con fopen, la funzione feof testa il flag end-of-file ovvero la fine dello stream aperto. In particolare feof restituisce un valore logico vero nel caso in cui abbia raggiunto la fine del file, mentre negli altri casi restituisce 0.
La funzione risulta essere molto utile per verificare che all’interno del file ci siano ancora caratteri da leggere, evitando magari alcune situazioni indesiderate.Di seguito viene riportata la sintassi della funzione feof:


 
int feof(FILE *fp);


dove fp è il puntatore allo stream, in questo caso il file, ottenuto dalla chiamata della funzione fopen.

Esempio funzione feof

Nel seguente esempio useremo la funzione feof insieme ad un ciclo while per leggere tutte le parole presenti all’interno di un file denominato test.txt.


 
#include <stdio.h>

void main(){
    char parola[50];
    FILE *fptr;

    fptr = fopen("test.txt", "r");

    if(fptr == NULL){
        printf("Errore durante l'apertura del file!\n");
    } else {
        while(!feof(fptr)){
            fscanf(fptr, "%s", &parola);
            printf("%s", parola);
        }
    }

    fclose(fptr);
}


Output: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Utilizzando la funzione feof è possibile stampare l’intero contenuto di un file in modo semplice e sicuro. Appare ancora più utile quando si usano le funzioni come fgetc e fgets, due funzioni che verranno mostrate nelle pagine successive.

Indice pagine linguaggio C: