C++ cout输出中文信息乱码问题解决

 问题描述:在实例化学生类对象时,对学生的姓名采用了形如“张三”这样的汉字信息,在输出学生姓名时出现了乱码问题(如下图):

C++ cout输出中文信息乱码问题解决_第1张图片

 解决办法:采用头文件中的SetConsoleOutputCP(CP_UTF8)函数来设置在显示器打印时的编码格式就解决了乱码问题。

C++ cout输出中文信息乱码问题解决_第2张图片

完整代码如下:

#include 
#include 

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;
}

你可能感兴趣的:(c++)