C++ ifstream 下的中文乱码问题

先看示例代码:

#include 
#include 
#include 
using namespace std;

int main() {
	ifstream ip_file("读取.txt"); // “读取.txt”与代码文件位于同一目录
	string s;
	
	if (ip_file.is_open()) {
		// 读取txt内容
		ip_file >> s;
		// 关闭txt
		ip_file.close();
	} else {
		cout << "无法读取硬盘中的学生信息!\n";
	}
	
	cout << s << "\n";
	return 0;
}

代码的作用是读取读入.txt文件中以空格隔开的第一段字符串,并输出到终端。
假设读入.txt中的内容是这样的:

郑州轻工业大学

如果读入.txtUTF-8 编码,那么终端会输出乱码:

閮戝窞杞诲伐涓氬ぇ瀛

如果读入.txtANSI 编码,那么终端会正确输出,即

郑州轻工业大学

但我也不明白为什么是这样的QAQ

你可能感兴趣的:(C++文件操作,c++,开发语言)