C语言 读取文件时 除正常数据外 还有些乱码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 读取文件时 除正常数据外 还有些乱码相关的知识,希望对你有一定的参考价值。

void ReadFile(LinkList head) // 读取数据文件,创建新链表 FILE *fp; char fname[60]; LinkList p=head; printf("请输入要打开的文件名: "); scanf("%s",fname); fp=fopen(fname,"rb"); if((fp=fopen(fname,"rb"))==NULL) printf("无法打开文件!!!\n"); return; printf("\n读取数据为: \n"); while(!feof(fp)) p->next=(LinkList)malloc(sizeof(Student)); fread((void *)p->next,sizeof(Student),1L,fp); printf("学号:%d 姓名:%s 年级:%s 专业:%s 三门成绩:%6.2f,%6.2f,%6.2f\n", p->next->number,p->next->name,p->next->grad,p->next->profess, p->next->score[0],p->next->score[1],p->next->score[2]); p=p->next; p->next=NULL; fclose(fp); typedef struct Student //链表的数据结构 int number; char name[20]; char grad[20]; char profess[20]; float score[5]; struct Student *next; Student,*LinkList;

参考技术A 文件末尾检测出问题。
在C语言中文件读取操作时不能完全依赖于“while(!feof(fp))...”的判断
建议检测读出的数据,或用fgetc判断文件结束。
参考技术B 必须确保这个文件一定是用fwrite()函数写入的,而且读写格式一定相同,即写入语句是
fwrite((void
*)Student,sizeof(Student),1L,fp);
参考技术C 信息不太全,最好贴一下LinkList实体与真正文件whd里面的内容

vscode文件写入中文乱码

C语言在vscode中写入中文时出现乱码:

技术图片

 

 网上有些方法,但是试过没有用,还是显示乱码

技术图片

 

 技术图片

 

 以下方法亲测有效:

技术图片

 

 扩展中搜索"gbk",安装该扩展,中文就可以正常显示了

技术图片

 

 技术图片

以上是关于C语言 读取文件时 除正常数据外 还有些乱码的主要内容,如果未能解决你的问题,请参考以下文章

c语言读取文件数据乱码

java从数据库里读文件变乱码

Qt读取文本文件乱码怎么办

如下:为啥C语言读取文件中的数据并输出时有乱码出现?本来输入的是数字,然后从文件中读取后就变汉字

c语言,数据能写入文件,但是从文件读取数据的时候,出现了乱码,如下代码,求解答

怎么解决读取txt文件读取时中文乱码问题