La funzione fgetc in C legge un carattere da un file, precedentemente aperto con la funzione fopen.
fgetc sintassi
La funzione presenta dunque la seguente sintassi:
int fgetc(FILE *fp)
Come abbiamo già detto precedentemente per le altre funzioni, FILE *fp è il puntatore al file restituito dalla funzione fopen.
La funzione fgetc restituisce un intero, che in caso di successo è il carattere letto, altrimenti, se ad esempio raggiunge la fine del file o si ha un errore di lettura, restituisce la costante EOF.
Esempio di utilizzo di fgetc in C
Proponiamo dunque un esempio che permette di leggere un carattere alla volta da un file di testo già creato in precedenza. Inoltre vogliamo visualizzare i caratteri letti sul monitor.
Quindi apriamo il file carattere.txt in lettura e controlliamo se il puntatore restituisce il valore NULL e in tal caso diamo il messaggio di errore.
Dopo, con la funzione fgetc, leggiamo un carattere alla volta dal file aperto e visualizziamo a video i caratteri letti. Questo finché non raggiungiamo la fine del file, ovvero finché non si verifica questa condizione while(c!=EOF), dove c rappresenta il nostro carattere.
Infine chiudiamo il file usando la funzione fclose.
Ecco dunque il listato completo dell’algoritmo proposto utilizzando fgetc in C:
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp;
char c;
if((fp=fopen("carattere.txt", "rt"))==NULL) {
printf("Errore nell'apertura del file'");
exit(1);
}
do {
c=fgetc(fp);
putchar(c);
} while(c!=EOF);
fclose(fp);
return 0;
}
Conclusioni
In questa lezione abbiamo semplicemente studiato il funzionamento della funzione fgetc in C, più avanti faremo altri esempi.
Scrivete pure le vostre considerazioni nei commenti sotto.
Alcuni link utili
Allocazione dinamica della memoria con malloc
Esercitazione sulle struct in C
Come sommare gli elementi della cornice esterna