Ответы с форумов MSDN

Русские буквы в консоли в Visual C++

Date: 28.05.2019 10:20:58

Обсуждалось миллионы раз. Совет использовать _setmode(_fileno(stdout), _O_U16TEXT); и широкие символы корректен, это должно решить проблему; хотя разумеется, есть и другие варианты. Если это не работает, возможно у вас в консоли установлен шрифт, не поддерживающий кириллицу. Попробуйте установить Lucida Console или Consolas. Другой вариант (если речь о литералах) - сами исходники в неправильной кодировке; обычно рекомендуется UTF8.

Подробный обзор разных способов работы с кириллицей и возможных проблем см. например здесь: https://ru.stackoverflow.com/q/459154/240512


Message 241

Date: 28.05.2019 11:36:20

У вас не хватает включения stdio.h для символа stdout. Также, вызов setlocale в данном случае не нужен: режим UTF16 не привязан к локалям. 

"В настройках проекта (в Character Set'e) у меня установлено: Use Unicode Character Set."

Это прекрасно, но не влияет на консольный вывод (это влияет на развертку обобщенных макросов типа TCHAR).

Message 240

Date: 28.05.2019 13:39:00

Если честно - не знаю. Больше похоже на проблему со студией, чем с вашим кодом. Тот код, который вы показываете, определенно должен собираться. 

Автор: VadimTagil

Главная страница - Список тем - Репозиторий на GitHub