0

Русский язык у меня в коде работает, литровые строки выводятся, русские слова в переменных тоже. Но при вводе русского слова в переменную через cin на выводе онo не отображается, то есть вообще ничего нету, ни в cmd ни в windows powershell работает только в Windows terminal(cmd или powershell). Код в кодировке UTF-8, терминалы тоже. Если сменить кодировку в терминале на 1251 то кириллица из word отображается а из word2 превращается в кракозябры.

int main()
{
    std::string word, word2 = "Пупкин";
    std::cin >> word;
    std::string word3 = word + " " + word2;
    std::cout << word3;
    return 0;
}

введите сюда описание изображения

1 Answers1

0

попробуйте добавить файл заголовка

#include <Windows.h> 

а в мейне добавить

 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);

если не работает попробуйте вписать в мейн

setlocale(LC_ALL,"ru");
  • Это работает, для вводимой переменной. Но инициализированная превращается в кракозябры. – Randalf Nov 14 '23 at 12:55
  • и то и другое? Если да, то странно очень. Какие инклюды у вас есть? Какая ос? – Yegor Vitalievich Nov 14 '23 at 12:58
  • Странно что в терминалах cmd и powershell у меня не отображается русское слово которое я ввожу через cin. Но в эмуляторе терминалов Windows terminal все нормально. Ну и все работает если я код сделаю в кодировке 1251 и терминал тоже в кодировке 1251. – Randalf Nov 14 '23 at 13:03
  • Инклуды iostream и string. Windows 10. – Randalf Nov 14 '23 at 13:04