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;
    }
}