-2

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

2 Answers2

3

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

Blazer
  • 14,259
  • 3
  • 30
  • 53
0

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.

bames53
  • 86,085
  • 15
  • 179
  • 244