Почему я получаю числа в качестве результата вывода при использовании 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;
}
Отображаемые «цифры» являются значение персонажа. Вот почему вы получаете «цифры». Если вы хотите отобразить символы, которые вы можете использовать wcout
std::cout
это basic_iostream<char>
, Здесь нет operator<<
перегрузка для wchar_t
за basic_iostream<char>
, Когда вы выводите wchar_t
объекты они должны быть преобразованы в некоторый тип, для которого есть operator<<
перегрузки. Выбранное преобразование относится к целочисленному типу, кроме char
и поэтому вместо представленного символа отображается целое значение.