Ultima modifica da un moderatore:
In prarica dovrei realizzare un programma che creata una struttura dati in grado di memorizzare i voti ottenuti dagli studenti durante l'anno lo inserisca in un file .dat e successivamente tramite una procedura mi stami il voto.
Solo che mi stampa 0.0000 anche se inserisco il voto, questo il codice:
Solo che mi stampa 0.0000 anche se inserisco il voto, questo il codice:
C:
#include <stdio.h>
#include <stdlib.h>
struct s_alunno {
char nome[30];
char cognome[30];
float voto;
char materia[30];
};
typedef struct s_alunno var;
int main()
{
FILE *f1;
var alunno;
printf("Inserisci Nome: ");
scanf("%s", alunno.nome);
printf("Inserisci Cognome: ");
scanf("%s", alunno.cognome);
printf("Inserisci voto: ");
scanf("%f", &alunno.voto);
printf("Inserisci materia: ");
scanf("%s", alunno.materia);
f1=fopen("voti.dat", "wb");
if (f1==NULL){
printf("Impossibile aprire il file\n\n");
exit(1);
}
fwrite(&alunno.nome, sizeof(struct s_alunno), 1, f1);
fwrite(&alunno.cognome, sizeof(struct s_alunno), 1, f1);
fwrite(&alunno.voto, sizeof(struct s_alunno), 1, f1);
fwrite(&alunno.materia, sizeof(struct s_alunno), 1, f1);
fclose(f1);
voti();
return 0;
}
void voti (var alunno){
FILE *f2;
f2=fopen("voti.dat", "rb");
if (f2==NULL){
printf("Impossibile aprire il file\n\n");
exit(1);
}
fread(&alunno.voto, sizeof(struct s_alunno), 1, f2);
printf("%f", &alunno.voto);
fclose(f2);
}