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语言读取文件中的数据并输出时有乱码出现?本来输入的是数字,然后从文件中读取后就变汉字