Salve devo sviluppare un codice per scrivere all'interno di un file esame e relativo voto
L'algoritmo gira, stampa a video i dati letti da file
ma nel file .txt viene scritto soltanto il nome dell'esame seguito da caratteri strani e non il voto dell'esame.
Potete darmi una mano? Grazie
#include <iostream>
using namespace std;
#define LEN 100
typedef struct {
char esame [LEN];
int voto;
} Esame;
void stampa(FILE *fp, Esame Es);
int main (){
FILE *fp;
int dim, i;
Esame Es;
fp=fopen("E:/ricapitola.txt", "ab");
if (fp){
cout<<"Quanti esami vuoi inserire?"<<endl;
cin>>dim;
fflush(stdin);
for (i=0;i<dim;i++){
cout<<"Inserisci esame:";
cin>>Es.esame;
cout<<"Inserisci voto:";
cin>>Es.voto;
// scrivo su file
fwrite(&Es, sizeof(Esame), 1, fp);
fflush(stdin); // svuoto il buffer
}
fclose(fp);
}
else
cout<<" Errore nell'apertura file";
stampa(fp, Es);
return ;
}
void stampa(FILE *fp, Esame Es){
fp= fopen("E:/ricapitola.txt", "rb");
if(fp==NULL)
cout<<"Errore apertura file";
else {
cout<< ":: ESAMI ::"<<endl;
while (fread(&Es,sizeof(Esame), 1, fp )>0 ){
cout<<"Esame:"<<Es.esame<<endl;
cout<<"voto:"<<Es.voto<<endl;
}
fclose(fp);
}
}