Неправильно выводит русские символы в char
Пытаюсь сохранить русский символ в переменной unsigned char, но при сохранении символа 'а'(русского) выводит другой('р'). Проверял на разных русских символах и понял, что выводится буква на 16 порядков выше, то есть для 'б' выводится 'с', для 'в' - 'т' и т.д.
unsigned char a = 'в';
std::cout << a;
Думал уменьшить числовое значение char на 16, но выводит уже не буквы
unsigned char a = int('а') - 16;
Как мне все-таки вывести тот символ, который я ввел?
Ответы (1 шт):
Автор решения: Red
→ Ссылка
У вас не подключена локализация.
Используйте setlocale(LC_ALL,"Russian");
#include <iostream>
#include <clocale> //Обязательно для функции setlocale()
using namespace std;
int main()
{
setlocale(LC_ALL,"Russian");
unsigned char a = 'в';
std::cout << a;
return 0;
}