关于“fwrite”函数的文件输出问题。。。
麻烦大家看看这个程序,运行后显示是对的,可是输出到文件的内容都是乱码。求解?#include<stdio.h>
#include<stdlib.h>
struct student
{
int num;
char name[15];
float score[3];
float aver;
}stud[5];
float ave(float a,float b,float c)
{
float d;
d=(a+b+c)/3;
return d;
}
int main()
{
int i;
FILE *fp;
float k;
for(i=0;i<5;i++)
scanf("%d%s%f%f%f",&stud[i].num,stud[i].name,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);
for(i=0;i<5;i++)
{
k=ave(stud[i].score[0],stud[i].score[1],stud[i].score[2]);
stud[i].aver=k;
}
if((fp=fopen("stud.c","wb"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
for(i=0;i<5;i++)
{
if(fwrite(&stud[i],sizeof(struct student),1,fp)!=1)
printf("file write error\n");
fputc('\n',fp);
printf("%d %-15s%-6.2f%-6.2f%-6.2f%-6.2f\n",stud[i].num,stud[i].name,stud[i].score[0],stud[i].score[1],stud[i].score[2],stud[i].aver);
}
fclose(fp);
}