Ciao a tutti, sto avendo un problema che non capisco molto bene...
Io ho una struttura definita così:
Il programma le fa inserire all'utente e le salva su un file, che poi visualizza, con le due funzioni:codice:typedef struct _esame { char nome[20]; int voto; int crediti; } Esame;
Eppure, per motivi a me del tutto sconosciuti, stampa sempre e solo il PRIMO record del file.codice:void aggiungi(FILE* fp) { fseek(fp, 0, SEEK_END); Esame tmp = leggi_esame(); fwrite(&tmp, sizeof(Esame), 1, fp); } void visualizza(FILE* fp) { fseek(fp, 0, SEEK_SET); Esame tmp; printf("\nEsami:\n"); while (fread(&tmp, sizeof(Esame), 1, fp) == 1) stampa_esame(tmp); printf("\n"); }
Se io ne aggiungo altri, questi vengono effettivamente salvati sul file (le dimensioni del file aumentano ogni volta di 28 byte, ovvero la dimensione della struttura), e infatti se apro la struttura con notepad riesco a vedere che sono stati aggiunti anche gli altri...
Come mai?![]()

Rispondi quotando