Ho scritto una cosa del genere..ovviamente non funziona ma mi dite come correggere
codice:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef char stringa[20];
typedef struct
{ char nome[20];
char cognome[20];
int eta;
int altezza;
} record;
typedef struct EL
{record info;
struct EL *prox;
}elemlista;
typedef elemlista *listaelementi;
void visualizza(listaelementi );
listaelementi inserisci(listaelementi, record);
int main(int argc, char *argv[])
{
listaelementi lista;
lista=NULL;
FILE *fl;
record elemento;
/*memorizza elenco dal file alla lista*/
if ((fl=fopen("elenco.txt", "r")) == NULL)
printf("impossibile aprire il file");
else
{
while(!feof(fl))
{ fscanf(fl, "%s %s %d %d", elemento.nome, elemento.cognome, &elemento.eta, &elemento.altezza);
/*solo per controllare che i dati vengano presi in modo corretto*/
printf("%s %s %d %d ", elemento.nome, elemento.cognome, elemento.eta, elemento.altezza);
inserisci(lista, elemento);
}
}
visualizza(lista);
system("PAUSE");
return 0;
}
listaelementi inserisci(listaelementi lista, record elemento)
{ elemlista *punt;
punt = malloc(sizeof(elemlista));
punt->info= elemento;
punt->prox = lista;
return punt;
}
void visualizza(listaelementi lista)
{
if (lista!=NULL)
{
printf("%s", lista->info);
visualizza(lista->prox);
}
else printf("lista vuota");
}