向磁盘文件写入数据为什么打开文件后显示乱码啊
有5个学生,每个学生有3门课程的成绩,从键盘输入学生数据(包括学号、姓名、3门课程),计算平均成绩,将原有数据和计算出的平均分数存放在磁盘文件‘stud’中。
书上的习题 很简单 可是就是搞不对啊 不知道错哪里了。
#include <stdio.h>
#include <stdlib.h>
#define SIZE 3
struct student
{
int num;
char name[10];
float score[3];
}stud[SIZE];
main()
{
FILE *fp;
int i,j;
float aver[3],sum;
printf("请输入 学号 姓名 分数!\n");
for (i=0;i<SIZE;i++)
{
sum=0;
scanf("%d %s",&stud[i].num,stud[i].name);
for (j=0;j<3;j++)
{
scanf("%f",&stud[i].score[j]);
sum+=stud[i].score[j];
}
aver[i]=sum/3;
printf("%f\n",aver[i]);
}
if ((fp=fopen("stud.txt","wb"))==NULL) /*wb为读写建立一个新的二进制文件*/
{
printf("cannot open the file!");
exit(0);
}
/*将原始数据和平均分数存放到磁盘文件stud.txt*/
for (i=0;i<SIZE;i++)
{
if(fwrite(&stud[i],sizeof(struct student),1,fp)!=1)
printf("file write error\n");
}
fclose(fp);
}
[解决办法]
if ((fp=fopen("stud.txt","wb"))==NULL) /*wb为读写建立一个新的二进制文件*/if(fwrite(&stud[i],sizeof(struct student),1,fp)!=1)
[解决办法]
还要注意字符本身的编码,和系统环境变量或者GUI现实编码
[解决办法]