问题描述:在实例化学生类对象时,对学生的姓名采用了形如“张三”这样的汉字信息,在输出学生姓名时出现了乱码问题(如下图):
解决办法:
方法一(推荐,一劳永逸):
1.同时按住Ctrl+Alt+Shift+/四个键,选择注册表
2.取消勾选run.processes.with.pty,点击关闭,大功告成!
方法二:
采用<windows.h>头文件中的SetConsoleOutputCP(CP_UTF8)函数来设置在显示器打印时的编码格式就解决了乱码问题。
完整代码如下:
#include <iostream>
#include <windows.h>
using namespace std;
class Student {
public:
string name;
int num;
Student(const string &name, int num) : name(name), num(num) {}
friend ostream &operator<<(ostream &os, const Student &student) {
os << "name: " << student.name << " num: " << student.num;
return os;
}
};
int main() {
SetConsoleOutputCP(CP_UTF8);
Student s("张三", 1001);
cout << s << endl;
return 0;
}