fopen

La funzione fopen in C serve ad aprire un file in varie modalità.

La sintassi della funzione fopen è dunque la seguente:

FILE *fopen(char *nomefile, char *modo);

Dove nomefile è un puntatore ad una stringa di caratteri che indica il nome del file da aprire, mentre modo indica invece la modalità con cui il file può essere aperto.


Elenchiamo quindi le modalità disponibili:

r apre un file in lettura.

r+ apre un file in lettura/scrittura; il file deve esistere.

w crea un nuovo file in scrittura; se il file esiste viene cancellato il contenuto.

w+ crea un nuovo file in lettura/scrittura; se il file esiste viene cancellato il contenuto

a aggiunge (append) alla fine del file; se il file non esiste viene creato.

a+ aggiunge e legge a partire dalla fine del file; se il file non esiste viene creato.

Inoltre possiamo specificare se il file è binario o di testo inserendo rispettivamente la lettera b o t. Se si omette quest’ultimo carattere, allora di default si considera la t, ovvero come file di testo.

Se l’operazione di apertura è eseguita con successo si ha come valore di ritorno un puntatore al file aperto, altrimenti restituisce il valore NULL.


Esempi di utilizzo di fopen in C

Facciamo adesso degli esempi di utilizzo di questa funzione:

FILE *fp;

fp=fopen(“coding.txt“, “w+t“);

In questo caso si apre un file di testo (t) di nome coding.txt in lettura e scrittura (w+). Attenzione, se il file non esiste allora si crea automaticamente, altrimenti il contenuto del file preesistente si perderà.

Qualora non si volesse cancellare il contenuto del file, ma semplicemente aggiungerlo alla fine del contenuto precedente, si dovrebbe utilizzare la modalità a (append). Se poi si desidera anche leggerlo, allora occorre utilizzare la modalità a+(aggiunge e legge).

Associamo in questo caso la variabile puntatore fp, nota come file pointer, al file di nome coding.txt. Dopo che il file viene aperto si utilizza il file pointer fp per scrivere o leggere le informazioni.


Conviene sempre fare dei controlli e vedere se ci sono stati errori durante l’apertura del file:

FILE *fp;

if ((fp=fopen(“coding.txt“, “w+t“))==NULL)

printf(“Errore nell’apertura del file!”);

else

Il fallimento avviene quando ad esempio cerchiamo di scrivere in un file di sola lettura, oppure cerchiamo di aprire un file che non esiste.

Per il momento abbiamo solo introdotto la funzione fopen in C, nelle prossime lezioni faremo degli esempi d’uso e introdurremo le altre funzioni per gestire i file come fclose, fread, fwrite, fseek, ecc.

Alcuni link utili

Media per riga e per colonna

Somma elementi diagonale principale di una matrice

Come sommare gli elementi della cornice esterna

Matrice trasposta

Prodotto tra matrici

Ricerca elementi in una matrice

Selection sort in C

Merge sort in C

Insertion Sort in C


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *