Allora non ho avuto bisogno di fare un'altra funzione, bastava usare una variabile esterna per appoggio. Ti posto il codice, con questo riesci a stampare tutto. (MItaly sicuramente modificherai il quote, mi puoi indirizzare alla pagina dove si spiega come postare i codici? Grazie in anticipo).
codice:#include<stdio.h> #include<string.h> #include<stdlib.h> #define max 30 //////////////Definizione STRUCT typedef struct s_cond{ char nome[max]; int giorni,percorso; }cond; typedef struct s_nodo_cond{ cond info; struct s_nodo_cond *next; }nodo_cond; typedef nodo_cond *lista_cond; typedef struct s_auto{ char targa[max]; int posti,km; }bus; typedef struct s_nodo_bus{ bus info; lista_cond *punt_interno; struct s_nodo_bus *next; }nodo_bus; typedef nodo_bus *lista_bus; lista_cond ext=NULL; //Variabile esterna d'appoggio /////////////////////////////////////////////////// FUNZIONI lista_bus inserimento_bus(lista_bus *lis,bus b){ lista_bus aux=NULL; aux=(lista_bus)malloc(sizeof(nodo_bus)); aux->info=b; aux->punt_interno=NULL; aux->next=*lis; return aux; } lista_cond inserimento_cond(lista_cond lis,cond d){ lista_cond aux=NULL; aux=(lista_cond)malloc(sizeof(nodo_cond)); aux->info=d; aux->next=lis; return aux; } lista_bus caricamento(lista_bus *lis){ FILE *fp; bus b; cond c; lista_bus point=NULL; lista_cond cond=NULL; fp=fopen("archivio.txt","r"); if(fp==NULL){ perror(""); exit(1); } while(fscanf(fp,"%s%d%d%s%d%d",b.targa,&b.posti,&b.km,c.nome,&c.percorso,&c.giorni) != EOF) { point=inserimento_bus(lis,b); ext=inserimento_cond(cond,c); } fclose(fp); return point; } void stampa_cond(lista_cond lis){ while(lis!=NULL){ printf("\nNome: %s",lis->info.nome); printf("\nGiorni: %d",lis->info.giorni); printf("\nPercorso: %d",lis->info.percorso); lis=lis->next; } } void stampa_bus(lista_bus lis) { lista_bus aux=lis; while(aux!=NULL){ printf("\nTarga: %s",aux->info.targa); printf("\nPosti: %d",aux->info.posti); printf("\nKm: %d",aux->info.km); //stampa_cond(aux->punt_interno); aux=aux->next; } } ////////// MAIN int main(){ lista_bus lista_bus=NULL; int scelta; int n=0,y=1; do{ printf("\n1)Caricamento"); printf("\n2)Stampa"); printf("\n\n\tScelta: "); scanf("%d",&scelta); switch(scelta){ case 1: lista_bus=caricamento(&lista_bus); break; case 2: stampa_bus(lista_bus); stampa_cond(ext); break; } }while(scelta!=0); }

Rispondi quotando