fgets()函数读出一个txt文件显示出来是乱码

其实问题源头就是你要读的那个文件的编码
比如:

FILE *fp1, *fp2;
fp1 = fopen("student.txt", "r");
fp2 = fopen("csStudent.txt", "w");
while (fgets(buf, MAXSIZE, fp1) != NULL)
{
	fputs(buf, fp2);
}

你这样去读出并直接写入另一个文件,这个新文件打开是没有问题的,中文还是中文,但如果是打印:

while (fgets(buf, MAXSIZE, fp1) != NULL)
{
	printf("%s", buf);  // 打印出buf可能会乱码
}

这时打印出buf如果乱码就大概率是txt文件的编码问题了
解决方法:
在这里插入图片描述
在这里插入图片描述
另存为,改一下编码就行了

猜你喜欢

转载自blog.csdn.net/weixin_44427114/article/details/105038913