编程问题 C语言
下图为某班某门课程成绩表设置格式,编一程序,输入该班每位同学的姓名、平时、笔试、操作这几项信息,计算每位同学的平均成绩,将原有数据和平均成绩信息存入文件chengji.txt中,打开文件chengji.txt,把文件内容显示在屏幕上。要求用结构体和文件实现。(测试输入5位同学的信息)XX课程成绩表
姓名 平时 笔试 操作 平均
张三 81 60 67
李四 78 66 65
(涉及知识点:结构体的定义,结构体数组,文件的操作(文件打开fopen(打开方式)、文件指针、文件关闭fclose、文件内容的读写(fgetc和fputc、fscanf和fprintf、fread和fwrite)、文件结束feof),屏幕输出格式的控制)
代码如下:但是chengji.txt文件中是乱码,请问一下各位编程大师,这是怎么回事?O(∩_∩)O谢谢!
#include
#include
#define N 5//定义学生个数
struct student
{
char name[8];
int score[3];
float av;
};
void main()
{
int i;
student stud;
FILE *fp;
//写入文件
if((fp=fopen("d:\\chengji.txt","w"))==NULL)
{ printf("can't open this file.\n");
exit(1);
}
printf("请输入学生信息:\n");
for(i=0;i<5;i++)
{
printf("┈┈┈┈┈┈┈");
printf("\n");
printf("姓名:");
scanf("%s",stud.name);
printf("平时:");
scanf("%d",&stud.score[0]);
printf("笔试:");
scanf("%d",&stud.score[1]);
printf("操作:");
scanf("%d",&stud.score[2]);
fwrite((student*)&stud,1,sizeof(student),fp);
}
fclose(fp);
//读出文件
if((fp = fopen("d:\\chengji.txt", "r"))==NULL)
{ printf("cannot open the file\n");
exit(1);
}
printf("─────────────────────");
printf("\n");
printf(" 某某班学生成绩表 \n");
printf("─────────────────────");
printf("\n");
printf("姓名\t平时\t笔试\t操作\t平均\t\n");
for(i=0;i<5;i++)
{printf("─────────────────────");
printf("\n");
fread((student*)&stud,1,sizeof(student),fp);
printf("%s",stud.name);
printf("\t%d",stud.score[0]);
printf("\t%d",stud.score[1]);
printf("\t%d",stud.score[2]);
printf("\t%f\n",(stud.score[0]+stud.score[1]+stud.score[2])/3.0);
}
printf("─────────────────────");
printf("\n");
}