Press ESC to close

feof

0 2196

La funzione feof in C serve a sapere se il file pointer si trova posizionato a fine file, ovvero testa la fine del file in un flusso.

La sintassi della funzione è dunque la seguente:

int feof(FILE *fp)

La funzione feof ritorna 0 se non è stata raggiunta la fine del file, altrimenti restituisce un valore diverso da zero.


Esempio di utilizzo di feof

Modifichiamo l’esempio affrontato nella lezione precedente, dove abbiamo utilizzato un ciclo for per leggere i dati.

Supponiamo di avere un file alunni.txt con i seguenti dati di esempio:

mario rossi 8
giulio verdi 9

Quindi questa volta utilizziamo un ciclo while, in quanto, non sappiamo esattamente quante volte verrà ripetuto il ciclo, dobbiamo fermarci quando si raggiunge la fine del file.

Ecco dunque il codice completo:

#include <stdio.h>
#include <stdlib.h>
#define N 5

int main() {
	FILE *fp;
	char cognome[20];
	char nome[20];
	int voto;
	
        fp = fopen("alunni.txt", "rt");
	if(!fp) {
		printf("Errore nell'apertura del file");
		exit(1);
	}

	while(!feof(fp)){
		fscanf(fp,"%s %s %d\n", &cognome, &nome, &voto);
		printf("cognome: %s, nome: %s, voto: %d\n", cognome, nome, voto);
	}
	fclose(fp);
	
return 0;
}

Attenzione, conviene quindi utilizzare questa funzione che è nata proprio per questo scopo.

Infatti potremmo ottenere lo stesso risultato utilizzando altre funzioni, ma per i file binari può succedere che una sequenza di informazioni possa essere scambiata come costante EOF, segnando erroneamente la fine del file.

Quindi meglio utilizzare la funzione feof, appositamente creata dal C.

Alcuni link utili

Indice argomenti linguaggio C

Funzione fprintf

Funzione fscanf

Allocazione dinamica della memoria con malloc

Utilizzo di malloc in C

Typedef struct in C

Esempio sulle struct in C

Esercizio sulle struct in C

Esercitazione sulle struct in C

Realizzare un menù di scelta in C

Altro esempio sulle struct in C

Strutture complesse in C

Media per riga e per colonna

Somma elementi diagonale principale di una matrice

Come sommare gli elementi della cornice esterna

Come sommare due matrici

Sommare dei numeri di una matrice

Matrice trasposta

Prodotto tra matrici

Ricerca elementi in una matrice

Inserire dati in una matrice

Tavola pitagorica in C

Array multidimensionali

Programma sui triangoli in C

Media dei numeri in un array

Array con numeri random

Quick sort in C

Selection sort in C

Merge sort in C

Insertion Sort in C

Other stories

Esercizio sui file in C

Next Story

fscanf

Previous Story