Gli ho dato una sistemata
codice:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct _ElementoLista
{
char identificativo[10];
double reale;
double immaginario;
struct _ElementoLista *next;
} elementoLista, *pElemento;
void stampalista(pElemento a);
int main(void)
{
char identificativo[10] = "";
double reale = 0.0;
double immaginario = 0.0;
pElemento lista = NULL, nuovoElemento = NULL;
FILE *fp;
fp = fopen("prova.txt", "r");
if( ! fp )
{
printf("Errore apertura file !\n");
exit( -1 );
}
puts("Lettura da file :\n");
while( fscanf(fp, "%s %lg %lg", identificativo, &reale, &immaginario) != EOF )
{
printf("%s = %g + %g\n", identificativo, reale, immaginario);
nuovoElemento = (elementoLista*)malloc(sizeof(elementoLista));
strcpy( nuovoElemento->identificativo, identificativo );
nuovoElemento->reale = reale;
nuovoElemento->immaginario = immaginario;
nuovoElemento->next = lista;
lista = nuovoElemento;
}
fclose(fp);
stampalista(lista);
puts("\n\nterminato");
getchar();
return (0);
}
void stampalista(pElemento a)
{
puts("\nContenuto lista :\n");
while( a!=NULL )
{
printf("%s = %g + i%g\n", a->identificativo, a->reale, a->immaginario);
a=a->next;
}
}