C语言读取TXT文件开头出现乱码

代码如下:#include<stdio.h>#include<stdlib.h>voidmain(){FILE*p;inti;charm[1000];p=fopen("c... 代码如下:
#include<stdio.h>
#include<stdlib.h>
void main()
{
FILE *p;
int i;
char m[1000];
p=fopen("c:\\123.txt","r");
if(p==NULL)
exit(0);
for(i=0;!feof(p);i++)
{
m[i]=fgetc(p);
putchar(m[i]);

}
printf("\n");
}

单步调试结果:
展开
 我来答
℃BQ594538
2015-08-05 · TA获得超过1220个赞
知道小有建树答主
回答量:526
采纳率:0%
帮助的人:131万
展开全部
这是因为你的txt文件的编码和编译器选择的编码不一致而导致的。
按你使用的操作系统不同,如果是windows,可以直接用记事本打开文件,选择另存为——编码——ANSI,保存后重新打开。
如果是linux,用编辑器打开文件后另存为无BOM的UTF-8格式。一般来说可以解决问题。
解释一下,在中文的windows系统中,选择另存为ANSI编码,实际上是保存为了GBK或类似的、当前win系统最兼容的编码方式。
在linux中,无BOM的UTF-8格式应该说是最常用最方便的编码。
cjj796
2013-11-04 · TA获得超过8709个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3655万
展开全部

你好!!

程序运行过了,没有你说的现象,你打开TXT文件看看,是不是TXT文件有问题

    

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
478617
2013-11-04 · TA获得超过875个赞
知道小有建树答主
回答量:725
采纳率:100%
帮助的人:111万
展开全部
你的123.txt文件是UTF8格式的文件,前面三个是UTF文件BOF码0xEFBBBF,用记事本打开该文件,另存为编码为ansi文件就可以了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
82...7@qq.com
2013-11-04 · TA获得超过407个赞
知道答主
回答量:166
采纳率:0%
帮助的人:109万
展开全部
《.txt》 改成 《.c》 文件格式。
追问
和这个没关系的....随便什么拓展名或者没有拓展名都一样的。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式