ho fatto in questo modo..ma mi stampa a video 2 volte l'ultimo elemento..devo inserire fflush ?
codice:#include <stdio.h> #include <stdlib.h> #define N 2 #define max 20 /* * */ struct riga { char nome[max]; int punti; }; int main() { struct riga ri; int fine = 0; int i; FILE *cfPtr; cfPtr = fopen("classifica.dat", "wb"); while (!fine) { printf("Nome Squadra : \n"); scanf("%s", ri.nome); printf("Punti Squadra : \n"); scanf("%d", &ri.punti); fwrite(&ri, sizeof(struct riga), 1,cfPtr); printf("Fine (SI=1, NO=0) ?"); scanf("%d", &fine); } fclose(cfPtr); if((cfPtr = fopen("classifica.dat","rb")) == NULL){ printf("Il file non può essere aperto"); } else{ while(!feof(cfPtr)){ fread(&ri, sizeof(struct riga), 1, cfPtr); printf("%s%d\n", ri.nome, ri.punti); } fclose(cfPtr); } return 0; }

Rispondi quotando