输出为乱码问题求解
有十名学生的数据(包括学号、姓名、和三门课程的成绩)存放在文件“score.txt”中,编写程序,把有不及格的学生数据存放到文件“bhg.txt”中,成绩都合格的学生数据存放到文件“hg.txt”中。我的代码:
#include<stdio.h>
#define size 3
int main()
{
struct st
{
int num;
char name[10];
int a;
int b;
int c;
}stu[size];
FILE *p,*q,*z;
int i,k;
printf("请输入学号、姓名、三科成绩用空格隔开\n");
for(i=0;i<size;i++)
{
scanf("%d%s%d%d%d",&stu[i].num,stu[i].name,&stu[i].a,&stu[i].b,&stu[i].c);
}
if((p=fopen("hg.txt","wb+"))==NULL)
printf("文件打开失败1\n");
if((q=fopen("bhg.txt","wb+"))==NULL)
printf("文件打开失败2\n");
if((z=fopen("score.txt","wb+"))==NULL)
printf("文件打开失败3\n");
for(i=0;i<size;i++)
{
if(fwrite(&stu[i],sizeof(struct st),1,z)!=1)
printf("文件写错误3\n");
if(stu[i].a<60||stu[i].b<60||stu[i].c<60)
{
if(fwrite(&stu[i],sizeof(struct st),1,p)!=1)
printf("文件写错误1\n");
}
else
{
if(fwrite(&stu[i],sizeof(struct st),1,q)!=1)
printf("文件写错误2\n");
}
}
fclose(z);
fclose(p);
fclose(q);
return 0;
}
运行没有出错,但是txt文档打开后都是类似 a 烫烫烫烫烫W > / b 烫烫烫烫烫N X J c 烫烫烫烫烫W N M 这样的乱码 是什么原因呢?是不是二进制转换的时候出现问题?
我刚学C语言,希望大家能帮帮忙 谢谢啦