
При написании программ в среде Visual studio иногда возникает необходимость вывода текста на русском языке. Казалось бы, что тут сложного? Берёшь и выводишь! А вот нет, иначе бы не было кучи форумов и страничек в интернете с этой проблемой.
А проблема заключается в кодировке, причём все сайты пишут работающие способы, но, к сожалению, далеко не у всех. В этой статье мы расскажем вам о том, как действительно нужно исправлять эту проблему.
Итак, вы написали программу, в которой решили вывести строку русскими буквами, например, "Русский язык в консоли!". Вы запускаете программу, но вместо заветной строки видите там "кракозябры"! Что же делать?
#include <iostream> int main() { std::cout << "Русский язык в консоли!" << std::endl; getchar(); return 0; }
Чаще всего пишут, что достаточно лишь добавить setlocale(LC_ALL, "Russian");
в начале программы (для C программ требуется подключение библиотеки locale.h: #include <locale.h>
). Сделаем это. Теперь программа должна выглядеть так:
#include <iostream> #include <locale.h> int main() { setlocale(LC_ALL, "Russian"); std::cout << "Русский язык в консоли!" << std::endl; getchar(); return 0; }
А возможный результат может выглядеть так:
Запустим её, если русский язык уже выводится - поздравляем! Проблема решена! Если нет, то идём дальше.
В верхнем меню выберете пункт файл
, Сохранить <название вашего файла> как
. В открывшемся окне вместо Сохранить
выберем Сохранить с кодировкой
, подтвердим, что желаем заменить файлы и выберем кодировку Кириллица (Windows) - кодовая страница 1251
.
Нажмём ОК и соберём программу заново.
Запустим программу вновь и теперь русский язык будет корректно выводиться!
UPD: Ещё один способ заставить работать русский язык
Если ничего из вышеперечисленного не помогло, значит проблема в кодировке самой консоли. А её можно изменить с помощью команды system("chcp 1251");
, то есть программа будет выглядеть так:
#include <iostream> #include <locale.h> #include <cstdlib> int main() { setlocale(LC_ALL, "Russian"); // задаём русский текст system("chcp 1251"); // настраиваем кодировку консоли std::cout << "Русский язык в консоли!" << std::endl; getchar(); return 0; }