
in questa nona parte del corso completo di C tenuto su questo sito, vi voglio parlare dei file di testo; imparerete a crearli, riempirli e gestirli attraverso il C. I file sono astrazioni fornite dal sistema operativo, che permettono di memorizzare grandi (e potenzialmente illimitate) quantità di dati e sono ad accesso sequenziale, nel senso che all’inizio la “testina” di lettura/scrittura si trova all’inizio di questo file e dopo ogni operazione di lettura o scrittura si sposta più avanti, fino a che non incontra l’End Of File (EOF).
INDICE
Parte 1: Introduzione.
Parte 2: Fasi, variabili, operatori e software.
Parte 3: Tipi di dato, direttive e primo programma.
Parte 4: Tipi di formato, prinft e scanf.
Parte 5: Istruzioni condizionali e di iterazione.
Parte 6: Funzioni e progetti su più file.
Parte 7: Puntatori e passaggio dei parametri.
Parte 8: Array, stringhe e strutture.
Parte 9: Gestione file: file di testo.
Parte 10: Gestione file: file binari.
Parte 11: Allocazione dinamica della memoria.
Parte 12: Creare ed utilizzare le liste nel C.
Parte 13: Algoritmi di ordinamento di Array.
Parte 14: Esercizi sul linguaggio C.
Il tipo FILE nel C è definito nella libreria <stdio.h> e il programmatore può agire sui FILE unicamente usando le funzioni definite in questa libreria; nei propri programmi, infatti, si definiscono e usano unicamente dei puntatori a FILE.
Per aprire un FILE si utilizza la seguente funzione:
FILE* fopen(char fname[], char modo[])
- “r”: apre il file in modalità di sola lettura (read);
- “w”: apre il file in modalità di sola scrittura (write);
- “a”: apre il file settando la testina in fondo al file (append).
Inoltre queste lettere possono essere seguite da:
- “b”: apre un file binario (esempio: fopen(“nomeFile.dat”, “rb”); );
- “t”: apre un file di testo (non è obbligatorio);
- “+”: apre un file con possibilità di modifica (opzionale).
Infine, per chiudere un FILE bisogna utilizzare questa funzione:
int fclose(FILE*);

I file possono essere o di testo o binari; vediamo adesso le differenze, partendo ad esaminare i file di testo. Un file di testo contiene sequenze di caratteri ed è molto più semplice e utilizzato di un file binario, in quanto permette la visione di quanto scritto su di esso. Nei file di testo:
- Esiste il concetto di riga e fine riga (lo “\n” ne identifica la fine);
- Certi caratteri sono stampabili a video;
- La fine del file è caratterizzata dal carattere EOF (che varia in base al sistema operativo).
Per esempio, i canali di input e output standard non sono altro che file di testo già aperti:
- stdin è un file di testo aperto in lettura;
- stdout è un file di testo aperto in scrittura;
Le principali funzioni per agire sui file di testo ricordano quelle già viste, e sono la fprintf() e lafscanf(); ecco qui un esempio di scrittura su file (semplice, semplice):

NEL FILE DI TESTO
|
NEL FILE MAIN.C
![]() |


programmacorposotesto.zip |
Dottore in Ingegneria Informatica.
Contattatemi sui miei Social Network e sul mio Sito personale per collaborazioni, proposte di lavoro e altre informazioni!