为什么我用VC++6.0运行这串代码读取文本信息结果是乱码?

#include<stdio.h>#include<string.h>//可以退出的头文件#include<stdlib.h>//结构体的长度#defineDATALEN... #include<stdio.h>#include <string.h>//可以退出的头文件#include <stdlib.h>//结构体的长度#define DATALEN 15//函数声明//定义结构数组struct wordUnit{ int id; //id char word[10]; //词语 char depId[10]; //依存词语的id char pos[10]; //词性 char depRel[10]; //依存目标的关系};int main(){ FILE *data;//要读取的文件指针 int i=0;//结构题数组移动 int j; struct wordUnit words[DATALEN]; if((data=fopen("data3.dat","r"))==NULL) { printf("Can not open file\n"); return 0; } while(!feof(data)){ //原txt文档的数据之间是以空格隔开的 fscanf(data,"%d %s %s %s %s\n",&words[i].id,words[i].word,words[i].depId,words[i].pos,words[i].depRel); i++; } fclose(data); for( j=0;j<i;j++) { printf("%d %s %s %s %s\n",words[j].id,words[j].word,words[j].depId,words[j].pos,words[j].depRel); } return 0;} 展开
 我来答
百度网友8b58de0
2020-05-13 · TA获得超过945个赞
知道小有建树答主
回答量:1079
采纳率:83%
帮助的人:323万
展开全部
原因是文件的编码是UTF-8或其它编码,必须是ANSI编码,把data3.dat用记事本打开,然后另存为,出现的对话框里下面有个编码方式,选择ANSI编码,保存并替换这个文件即可。
微风依旧QWQ
2022-12-30
知道答主
回答量:1
采纳率:0%
帮助的人:285
展开全部
文件编码格式不同,在电脑记事本打开txt,左上角点另存为,编码改为ANSI,替换之前的txt,就欧克了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式