Programmare in C – File di Testo: come aprire un file di testo in C

Guida C

Guida completa al C – file di Testo: come aprire un file di testo in C. Per aprire un file di testo si usa fopen. Fopen apre un file con una modalità specificata (le tre modalità di apertura più comune sono r, w e a che significano apertura in lettura, in scrittura e in modalità append).

Fopen restituisce un puntatore a un file di testo con cui accedere al file stesso. Per esempio,
si supponga di voler aprire un file di testo e scrivere su di esso i numeri da 1 a 10. Si potrebbe usare il seguente codice:

#include <stdio.h>
#define MAX 10

int main()
{
    FILE *f;
    int x;
    f=fopen("out","w");
    if (!f)
        return 1;
    for(x=1; x<=MAX; x++)
        fprintf(f,"%d\n",x);
    fclose(f);
    return 0;
}

L'istruzione fopen apre un file di testo chiamato out in modalità di scrittura. Si tratta di una modalità di scrittura distruttiva, significa quindi che se out non esistesse verrebbe creato, ma se esistesse verrebbe distrutto e un altro file verrebbe creato al suo posto. Il comando fopen restituisce un puntatore a un file di testo che viene memorizzato nella variabile f. Questa variabile viene usata per fare riferimento al file.

Se il file di testo non può, per qualche ragione, aperto, f conterrà il valore NULL. Valori restituiti dalla funzione principale. Questo programma è il primo programma di questa serie che restituisce un errore proprio nella funzione main. Se il comando fopen fallisce, f conterrà un valore NULL (uno zero).

Verifichiamo appunto se si è verificato un errore tramite l'istruzione di selezione if. Da ricordare è che, in C, 0 significa falso e qualsiasi altra cosa è vero. Quindi, se vi fosse stato un errore in apertura del file di testo, f conterr il valore zero che corrisponde a falso. Il simbolo ! È l'operatore Not, che ha la funzione di invertire il valore booleano. L'istruzione di selezione potrebbe essere riscritta in questo modo:
if (f==0)
che è perfettamente equivalente. E' però molto più comune da trovare if (!f)

Se ci fosse un errore su di un file di testo, la funzione main restituirebbe il valore 1. In UNIX, si può testare il valore di ritorno di un comando/programma e a tal scopo invitiamo a consultare un manuale della vostra shell in uso per tutti i dettagli

Lo statement fprintf dovrebbe esservi familiare: è praticamente la funzione printf in cui il primo parametro deve essere un puntatore a file. L'istruzione fclose chiude il file di testo al termine delle operazioni da eseguire su di esso.

STAMPA     Tags:,

Leave a Reply