C语言文件读取乱码问题。

这是结构体structstudent{intsutdentID;charname[20];intChineseScore;intMathScore;intEnglishS... 这是结构体 struct student{ int sutdentID; char name[20]; int ChineseScore; int MathScore; int EnglishScore; float AVScroe; //平均成绩}; 这是输出函数的代码 int line_number(FILE *a) // 统计文件行数{ int n; char ch; n = 0; while((ch = fgetc(a)) != EOF) { if(ch == '\n') n ++; } return n;} void output_all() // 输出全部数据{ FILE *fp; int n; int i; struct student *p; if((fp = fopen("score.txt","r")) == NULL) //open the file { printf("打开文件失败\n"); exit(0); } n = line_number(fp); //检测文件行数 p = (struct student *)malloc(n *(sizeof(struct student))); if(p == NULL) printf("内存分配失败\n"); for(i=0;i<n;i++) { //fscanf(fp,"%d",&p[i].sutdentID); if(fscanf(fp,"%d%s%d%d%d%lf",&p[i].sutdentID,p[i].name,&p[i].ChineseScore,&p[i].MathScore,&p[i].EnglishScore,&p[i].AVScroe) == EOF) printf("error"); //p = p+1; printf("%d %s %d %d %d %f\n",p[i].sutdentID,p[i].name,p[i].ChineseScore,p[i].MathScore,p[i].EnglishScore,p[i].AVScroe); } fclose(fp); free(p); } 文件读取后输出乱码。是什么问题。 展开
 我来答
狂沛朋尔蓉
2020-03-15 · TA获得超过1159个赞
知道小有建树答主
回答量:1841
采纳率:100%
帮助的人:10.5万
展开全部
如果数据文件是用fprintf()函数写入的,则用fscanf()函数读出,要点是两个函数的写/读格式要一致。
如果数据文件是用fwrite()函数写入的,则用fread()函数读出,写/读单位是sizeof(struct
student)。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式