#include <stdio.h>
#include <stdlib.h>

/*STRUTTURA DEL NODO DELLA LISTA*/
struct nodo {
char nome[5];
double reale,
immaginario;
struct nodo *succ;
};

typedef struct nodo elementolista;
typedef elementolista *listadielementi;
void stampa_lista(struct nodo *nodo);

int main(void){

char nome[5];
double reale,
immaginario;
FILE *file;


/*CREAZIONE DELLA LISTA DA FILE*/
struct nodo *crealista(void){
struct nodo *nodo, *testa;
testa = NULL;
file = fopen("prova.txt", "r"); /*Apertura del file in modalità Lettura*/
if(file==NULL) {
printf("Errore in apertura del file");
exit(1);
}
while(fscanf(file, "%s %lg %lg", nome, &reale, &immaginario) != EOF){ /*Fino alla fine del file chiamato "file"*/
nodo = malloc(sizeof(struct nodo)); /*Alloca memoria per il nodo*/
nodo-> succ = testa; /*Il puntatore al nodo successivo punterà alla testa*/
testa = nodo; /*La testa sarà il nodo appena creato*/
}

fclose(file); /*Chiusura del file*/
return(testa); /*Restituisce il puntatore alla testa della coda*/
}
return(0);
}


/*STAMPA DELLA LISTA CREATA*/
void stampa_lista(struct nodo *nodo){
while (nodo != NULL){ /*Finchè non arrivo all'ultimo nodo*/
printf(" %s + %g + %g\n", nodo->nome, nodo->reale, nodo->immaginario); /*Stampo le triple*/

nodo = nodo->succ; /*Avanzo di nodo*/
}
}