Wide character output result [closed]

2020-05-10 05:50发布

Why do I get numbers as output result when using wchar_t?

#include <iostream>
using namespace std;
int main()
{
    wchar_t q;
    q = 'A';
    cout << q;
    q = 'B';
    cout << q;
    q = 'C';
    cout << q;
    return 0;
}

标签: c++ wchar
2条回答
神经病院院长
2楼-- · 2020-05-10 06:37

std::cout is a basic_iostream<char>. There is no operator<< overload for wchar_t for basic_iostream<char>. When you output wchar_t objects they must be converted to some type for which there is an operator<< overload. The selected conversion is to an integral type other than char and so the integral value is shown instead of the represented character.

查看更多
Luminary・发光体
3楼-- · 2020-05-10 06:41

The displayed 'numbers' are the value of the character. That's the reason you get 'numbers'. If you want to display the characters you can use wcout

查看更多
登录 后发表回答