No Image

Вывод русских букв в c

СОДЕРЖАНИЕ
219 просмотров
10 марта 2020

Вы наверное не раз пытались вывести в консольное приложение русский текст, но вместо него выводились разные кракозябры.

К примеру, если мы напишем такой код на С++

То после компиляции, вот что будет выдавать нам консольное окно программы.

Если же мы будем использовать функцию setlocale() внутри функции main()

То получим вместо иероглифов нормальный русский шрифт, вуаля:

Также, можно опустить последний аргумент функции — setlocale(LC_ALL, "Russian"); можно заменить на setlocale(0, ""); — работоспособность программы от этого не изменится.

На данный вопрос уже ответили:

Начал изучать C++ и столкнулся с проблемой вывода русских букв в консоль. У нас на форуме узнал, что чтобы C++ правильно отображались русские буквы, надо применять setlocale(LC_ALL, "Russian") и применял её, всё было нормально, пока в книге не прочитал про ввод строк и строки и запустил пример из книги. В программе, код которой идёт ниже, если оставить setlocale , то программа выводит русские буквы нормально, а вот если запросить строку и ввести русские буквы, а потом вывести их, то они портятся при последующем выводе. Если убрать setlocale , то русские буквы при вводе, а потом выводе не портятся, зато вывод их из программы портится.

Вопрос: как мне поступить, чтобы можно было и из программы русские буквы выводить и при запросе ввода и последующем выводе они не портились?

UPD: попробовал так:

Но вообще получается что-то странное похоже что в переменные записываются выводимые строки : в desert записывается "У меня есть вкусный " а в name записывается " для вас, " . И что делать я хочу русский язык а не

после моего кода и не то что стало после UPD а именно:

Читайте также:  Как отличить хорошие сигареты

UPD: Нашёл самый лучший идеальный вариант здесь и всем настоятельно рекомендую использовать ТОЛЬКО ЭТОТ ВАРИАНТ он самый лучший!

При изучении языка C++ и программировании под Windows довольно часто возникают вопросы по поводу отображения русских букв в консоли. Вывод и ввод русских букв сопровождается выводом и вводом каких-то кракозябр или иероглифов. В интернете можно найти довольно много советов, но большая часть советов, которые мне попались, не помогали в решении проблемы.

Возникла проблема с отображением русских букв

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

На языке C++ программирую под ОС Linux, использую компилятор GCC. С проблемой неправильного отображения русских букв я не сталкивался. В момент написания статьи я нахожусь далеко от своего компьютера, могу довольствоваться лишь скромненьким ноутбуком с установленной ОС Windows Seven. Захотелось покодить и я установил на него интегрированную среду разработки Dev-C++ 5.10(использует компилятор TDM-GCC 4.8.1 на базе GCC 4.8.1). Кстати, она уже официально не поддерживается, но существует форк Orwell Dev-C++, который обновляется по сей день. Установив, я запустил и для пробы написал простую программку, которая отображает текст «Привет, мир!». Но поздороваться она с миром так и не смогла, а лишь сказала что-то непонятное на древнеегипетском. После перелопачивания некоторых форумов и сайтов я нашел множество советов, но основная масса не способна была решить её полностью, образовывались подводные камни о которых расскажу далее.

После написания, компиляции и запуска такой программы:

Комментировать
219 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock
detector