codice:#include <stdio.h>#include <malloc.h> typedef struct elemento{ char nome[20]; int v_media; struct elemento *next; }elemento; struct elemento *crea_lista() { elemento *p, *punt; int i;//indice del ciclo int n = 12;//numero elementi che si intende inserire p=NULL; p = (struct elemento *)malloc(sizeof(struct elemento)); FILE *catalogo= fopen("elenco_auto.txt","r"); fscanf(catalogo, "%s", p->nome); fscanf(catalogo, "%d", &p->v_media); punt = p; for(i=3; i<=n; i++) { punt->next = (struct elemento *)malloc(sizeof(struct elemento)); punt = punt->next; fscanf(catalogo, "%s", punt->nome); fscanf(catalogo, "%d", &punt->v_media); } // chiudo il for punt->next = NULL; // marcatore fine lista fclose(catalogo); return(p); } void visualizza_lista(struct elemento *p) { printf("lista —> "); /* ciclo di scansione */ while(p != NULL) { printf("%s", p->nome); // visualizza l’informazione printf("%d", p->v_media); // visualizza l’informazione printf(" —> "); p = p->next; // scorre di un elemento } printf("NULL"); } int main() { struct elemento *lista; // puntatore della lista lista = crea_lista(); // crea la lista visualizza_lista(lista); // stampa la lista return 0; }
Ho provato anche con %d ma non cambia nulla![]()

Rispondi quotando