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;
}