为什么我用C语言读入的文件是乱码流?

#include<stdio.h>#include<string.h>#include<stdlib.h>typedefstructLink{intnumber;char... #include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct Link {int number; char name[10]; char sex[4]; int Chinese; int English; int Math; float average; struct Link*next; }Student; void LoadStudent() { int flag=1; char FileName[20]; Student*p; FILE*fp; printf("Please input file path:"); scanf("%s",FileName); if((fp=fopen(FileName,"r+"))!=NULL) { fscanf(fp,"Number\tName\tSex\tChinese\tEnglish\tMath\tAverage\n"); printf("Number\tName\tSex\tChinese\tEnglish\tMath\tAverage\n"); while(flag) { p=(Student*)malloc(sizeof(Student)); fscanf(fp,"%d%s%s%d%d%d%f",&p->number,p->name,p->sex,&p->Chinese,&p->English,&p->Math,&p->average); if(p->number==NULL) flag=0; else { printf("%d\t%s\t%s\t%d\t%d\t%d\t%0.2f\t\n",p->number,p->name,p->sex,p->Chinese,p->English,p->Math,p->average); flag=1; } } } else printf("Load failed!"); fclose(fp); } void main() { LoadStudent(); } 展开
 我来答
绳宜绍月明
2019-07-19 · TA获得超过1213个赞
知道小有建树答主
回答量:1910
采纳率:100%
帮助的人:9.9万
展开全部
p=(Student*)malloc(sizeof(Student));
fscanf(fp,"%d%s%s%d%d%d%f",&p->number,p->name,p->sex,&p->Chinese,&p->English,&p->Math,&p->average);
你这个
结构体
没有赋值也没有memset一下。写到文件中应该是
乱码
。先清空一下结构体,再赋值试试。记得malloc完,一定要free!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式