解决C/C++ fscanf函数 ifstream输入流中文乱码问题

在C语言使用fscanf函数的时候,引入中文可能出现乱码的情况,本篇文章用来解释问题产生的原因并提供解决办法。

问题演示

在这里插入图片描述
如上图,我们从data.txt的文件指针fp中向程序内部读入一行信息,并打印在显示器上,结果如下:
在这里插入图片描述
可以看到,中文部分是乱码,不信试试把中文换成英文,就正常了,这猜都能猜到是字符编码问题;(C++的ifstream也有同样问题)

乱码是txt文件本身(utf-8编码)和我们用的Dev-C++ 或者 VS2019等编译器产生了不兼容。设置一下文件格式使其兼容编译器即可;

解决方法

打开刚才的data.txt文件,点击左上角文件->另存为->编码设置ANSI即可
(注意文件名和路径别乱改,不然程序找不到打不开了)
在这里插入图片描述