
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");
}
单步调试结果: 展开
#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");
}
单步调试结果: 展开
4个回答
展开全部
这是因为你的txt文件的编码和编译器选择的编码不一致而导致的。
按你使用的操作系统不同,如果是windows,可以直接用记事本打开文件,选择另存为——编码——ANSI,保存后重新打开。
如果是linux,用编辑器打开文件后另存为无BOM的UTF-8格式。一般来说可以解决问题。
解释一下,在中文的windows系统中,选择另存为ANSI编码,实际上是保存为了GBK或类似的、当前win系统最兼容的编码方式。
在linux中,无BOM的UTF-8格式应该说是最常用最方便的编码。
按你使用的操作系统不同,如果是windows,可以直接用记事本打开文件,选择另存为——编码——ANSI,保存后重新打开。
如果是linux,用编辑器打开文件后另存为无BOM的UTF-8格式。一般来说可以解决问题。
解释一下,在中文的windows系统中,选择另存为ANSI编码,实际上是保存为了GBK或类似的、当前win系统最兼容的编码方式。
在linux中,无BOM的UTF-8格式应该说是最常用最方便的编码。
展开全部
你的123.txt文件是UTF8格式的文件,前面三个是UTF文件BOF码0xEFBBBF,用记事本打开该文件,另存为编码为ansi文件就可以了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
《.txt》 改成 《.c》 文件格式。
追问
和这个没关系的....随便什么拓展名或者没有拓展名都一样的。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询