Терминал в кодировке UTF-8 не отображает кириллицу из переменной

Русский язык у меня в коде работает, литровые строки выводятся, русские слова в переменных тоже. Но при вводе русского слова в переменную через 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 шт):

Автор решения: Yegor Vitalievich

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

#include <Windows.h> 

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

 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);

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

setlocale(LC_ALL,"ru");
→ Ссылка