Salve a tutti, sto sviluppando un semplice programma, un roster di piloti ho un problema nella funzione LEGGIFILE, una volta salvato il file esco dal programma poi lo riapro gli faccio leggere il file e lui mi genera una lista che quando vado a visualizzarla il primo pilota è l'ultimo che c'era nel file quindi alla rovescia.
Ho fatto tantissime prove senza realizzare nulla, vorrei che per come il roster venga salvato me lo deve visualizzare quindi nello stesso ordine.
Grazie in anticipo per la disponibilità.
Di seguito riporto il codice della funzione
codice:
struct elemento *LeggiFile(struct elemento *p)
{
struct Pilota DaInserire;
struct elemento *punt;
struct Pilota vuoto;
int scelta;
printf("Leggere il roster di default?? 1 (si), 0 (no) ----> ");
scanf("%d", &scelta);
if(scelta == 0)
return;
FILE *stream = fopen("roster.txt", "r");
if (stream == NULL)
{
printf("\n\n*****************************************************************************\n");
printf("ERRORE NELLA LETTURA DEL ROSTER, POTREBBE NON ESISTERE O ESSERE VUOTO\n\n");
printf("*****************************************************************************\n");
return 0;
}
while (!feof(stream))
{
fscanf(stream, "%s\t%s\t%s\t%s\t%s\t%s\n\n", DaInserire.callsign, DaInserire.nome, DaInserire.status, DaInserire.grado, DaInserire.squadriglia, DaInserire.ruolo);
punt = (struct elemento *)malloc(sizeof(struct elemento));
punt->inf = DaInserire;
punt->succ = p;
p = punt;
DaInserire = vuoto;
}
fflush(stream);
fclose(stream);
printf("\n\n************@@@@@@@@@@@@@@@@@@@@@@@@@************\n");
printf("************ ************\n");
printf("************ROSTER LETTO CON SUCCESSO************\n");
printf("************ ************\n");
printf("************@@@@@@@@@@@@@@@@@@@@@@@@@************\n");
return (punt);
}
Se avete bisogno del sorgente completo lo pubblico.