I file

I file sono uno dei metodi per effettuare l'input/output di dati nei programmi. Il C, come tutti i linguaggi di programmazione, mette a disposizione funzioni dedicate alla lettura dei dati da file e alla scrittura su file.

Questo tutorial richiede la lettura di dati da file di testo.

La lettura da file

Vengono proposti diversi esercizi, di limitata complessità, per mostrare i vari casi di organizzazione di un file da leggere e i relativi approcci per la lettura.

Possiamo distinguere due casi:

  1. i dati possono essere letti riga per riga ed elaborati senza necessità di caricare in memoria tutti i dati dal file;
  2. i dati devono essere necessariamente tutti caricati in memoria per procedere con l'elaborazione.

Nel secondo caso, il modo più semplice di procedere è quello di caricare i dati in un vettore opportunamente dichiarato. Si possono distinguere i seguenti sotto-casi:

  • il file è composto da un numero fisso e noto (o calcolabile a-priori) di righe; in questo caso il vettore può essere allocato staticamente;
  • il numero di righe è riportato, in qualche forma, nel file da leggere; il vettore può essere quindi allocato dinamicamente una volta per tutte prima di iniziare la lettura;
  • il numero di righe non è noto; il vettore utilizzato per caricare i dati in memoria deve essere dimensionato dinamicamente durante la lettura.

Questo tutorial considererà il caso (1) e il primo sotto-caso del caso (2). Il secondo e il terzo sotto-caso del caso (2) verranno trattati nel tutorial dedicato all'allocazione dinamica.

Per semplicità, si assumerà che tutte le righe del file abbiano la medesima struttura, ovvero conterranno dati organizzati nello stesso modo.

AVVERTENZA

Anche se i dati da leggere da file nei diversi tutorial possono sembrare identici, vi sono delle piccole differenze sull'organizzazione del contenuto del file. Queste differenze sono importanti per l'impostazione della soluzione del problema.

Si raccomanda pertanto di leggere attentamente il testo di ciascun tutorial.