знаки вопроса вместо символов кириллицы в консоли visual studio windows 11

при попытке скомпилировать код на c++, в терминале вместо русских букв появляются знаки вопроса. setlocale(LC_ALL, "rus") пробовал, проблема не решилась. на ютубе увидел, что помогает панель управления >> часы и регион >> региональные стандарты >> дополнительно >> изменить язык системы и там поставить галочку на бета-тесте (юникод utf-8), а также сменить язык на русский (россия). однако результат остался прежним. как вариант думал, что проблема в шрифте, который не поддерживает русский язык. однако ввод в консоли и в среде разработки на русском языке работал нормально.

код

вот полный код:

#include <iostream>
#include <conio.h> // Для чтения нажатий клавиш

int main() {
    setlocale(LC_ALL, "rus");
    int choice = 1; // Указатель изначально установлен на первом варианте
    char ch;

    while (true) {
        system("cls"); // Очистка экрана (для Windows)
        // Выбор действия
        std::cout << "Выберите действие:" << std::endl;
        std::cout << (choice == 1 ? "-> " : "   ") << "Действие 1" << std::endl;
        std::cout << (choice == 2 ? "-> " : "   ") << "Действие 2" << std::endl;
        std::cout << (choice == 3 ? "-> " : "   ") << "Действие 3" << std::endl;

        ch = _getch(); // Чтение нажатой клавиши

        if (ch == 13) { // Если нажата клавиша "enter"
            // Реализация выбранного действия
            switch (choice) {
            case 1:
                // Код для реализации действия 1
                std::cout << "Вы выбрали Действие 1!" << std::endl;
                break;
            case 2:
                // Код для реализации действия 2
                std::cout << "Вы выбрали Действие 2!" << std::endl;
                break;
            case 3:
                // Код для реализации действия 3
                std::cout << "Вы выбрали Действие 3!" << std::endl;
                break;
            }
            break; // Выход из цикла
        }
        else if (ch == 72 && choice > 1) {
            // Если нажата клавиша "вверх" (стрелка вверх) и указатель не на первом варианте
            choice--;
        }
        else if (ch == 80 && choice < 3) {
            // Если нажата клавиша "вниз" (стрелка вниз) и указатель не на последнем варианте
            choice++;
        }
    }

    return 0;
}

Ответы (0 шт):