Adesso se voglio inserire un nuovo studente riesco a farlo.
Ho scritto nel frattempo la parte per visualizzare i dati presenti nel'elenco.
Ecco il codice per effettuare quest'opzione:
Qui il problema è che se il file non esiste tutto ok, mi dice che non esiste e torna al menù principale, se invece esiste, non mi legge niente, ma mi stampa a schermo solo una serie di numeri. Invece se inserisco alcuni nomi e poi voglio visualizzare la lista (senza uscire e riaprire il programma) mi compare il nome, il cognome, la classe, e poi una serie di numeri al posto dei voti.codice:int visualizza (struct pagelle elenco_pagelle[], int n) { int scelta; FILE*fp=fopen(FILE_PRED,"r"); if(fp==NULL) { printf("-----Errore di lettura. Il file non esiste-----\n"); return (scelta); } else { printf("Ecco gli studenti presenti in elenco:\n\n"); printf("%s %s %s %u %u %u %u",elenco_pagelle[n].nome,elenco_pagelle[n].cognome,elenco_pagelle[n].classe,elenco_pagelle[n].italiano,elenco_pagelle[n].matematica,elenco_pagelle[n].informatica,elenco_pagelle[n].religione); return 0; } fclose(fp); }
Può essere che devo mettere "d" al posto di "u"? Ma così facendo i voti non saranno più come unsigned int ma semplicemente int, sbaglio?
Se serve il codice completo lo posto dopo.

Rispondi quotando