Home
Accesso / Registrazione
 di 

Programmare in C - File di Testo: Lettura

Guida C

Per leggere un file di testo, basta aprirlo in modalità lettura (r). In generale, non è una buona idea usare una funzione fscanf per leggerlo.

Se il file di testo non è perfettamente formattato, fscanf non sarà in grado di gestirlo correttamente. Invece, si usa fgets per leggere ogni linea e poi effettuare il parsing della porzione di testo che interessa. Il codice seguente illustra il procedimento di lettura da un file di testo e di relativa stampa del suo contenuto sullo schermo.

#include <stdio.h>

int main()
{
    FILE *f;
    char s[1000];

    f=fopen("infile","r");
    if (!f)
        return 1;
    while (fgets(s,1000,f)!=NULL)
        printf("%s",s);
    fclose(f);
    return 0;
}

Lo statemente fgets restituisce un valore NULL quando incontra il marcatore di fine fine (end of file, EOF). Legge una linea (fino a 1000 caratteri in questo caso) e poi li stampa su standard output. Si noti che l'istruzione printf non include \n nella stringa di formato perchè fgets aggiunge un \n al termine di ogni riga letta. Quindi, si può affermare che una linea non è completa quando supera il numero massimo di caratteri specificati nel secondo parametro di fgets.

Errori da evitare in C

- non utilizzare accidentalmente close invece di fclose. La funzione close esiste, quindi il compilatore la accetta e sembrerà funzionare se vengono aperti e chiusi pochi files. Ad ogni modo, se il programma apre e chiude file all'interno di un ciclo, verranno terminati i file handlers disponibili e si verificherà un crash della memoria, proprio perchè close non chiude i file correttamente.

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 7 utenti e 101 visitatori collegati.

Ultimi Commenti