Lettura lista da file, in ordine

Un meccanismo possibile per leggere una lista da file, rispettando l'ordine degli elementi sul file, è quello di iniziare con una lista vuota, e poi aggiungere gli elementi letti da file sempre in coda alla lista. Possiamo quindi usare la funzione di aggiunta in coda.

Qui sotto riportiamo la sola funzione main del programma leggiavanti.c. La funzione InserisciCodaLista è descritta nel dettaglio nella pagina precedente (aggiunta di elementi in coda a una lista). Più avanti vedremo come questo metodo di lettura da file ha degli svantaggi, e analizzeremo una soluzione alternativa.

int main() {
  FILE *fd;
  int res;
  int x;

  TipoLista l;


		/* apre il file */
  fd=fopen("lista.txt", "r");
  if (fd==NULL) {
    perror("Errore in apertura del file");
    exit(1);
  }


		/* inizializza la lista */
  l=NULL;


		/* legge fino alla fine del file */
  while(1) {
		/* legge un elemento, esce se non c'e' */
    res=fscanf(fd, "%d", &x);
    if( res!=1 )
      break;

		/* l'elemento letto lo metto in coda */
    InserisciCodaLista(&l, x);
  }

  fclose(fd);
  

		/* stampa la lista */

  StampaLista(l);


  return 0;
}