ЧаВо = Часто задаваемые Вопросы
Как настроить русский язык в консольных программах?
В консольных приложениях (похожих на текстовый режим) русские буквы выводятся к кодировке CP-866, а в оболочке Dev-C++ они набираются в кодировке CP-1251. Это значит, что вместо русских букв вы увидите «кракозябры». Чтобы этого не случилось, кодировку нужно исправить с помощью простой дополнительной программы. Сделайте следующее:
- Запустите оболочку Dev-C++ и войдите в меню Сервис-Параметры компилятора.
- Перейдите на вкладку Компилятор и добавьте два параметра
-fexec-charset=cp866 -finput-charset=cp1251
как показано на рисунке (см. источник).
- Скачайте архив, содержащий программы gccrus.exe и g++rus.exe (193 Кб).
- Скопируйте программы gccrus.exe и g++rus.exe в папку C:\Dev-Cpp\bin (если при установке оболочки вы указали другой каталог вместо стандартного C:\Dev-Cpp, скопируйте программы в его подкаталог bin).
- Запустите оболочку Dev-C++ и войдите в меню Сервис-Параметры компилятора.
- Перейдите на вкладку Программа и исправьте названия двух первых программ так, как показано на рисунке.
Примечание от Ю. Проценко: Если программа при запуске не обнаруживает библиотеки libintl-8.dll и libiconv-2.dll, их нужно поместить в каталог C:\WINDOWS\SYSTEM32.
Как писать простые графические программы?
Для работы с графикой через браузер можно использовать онлайн-сервис Антона Деникина.
Для того чтобы на локальном компьютере подключить модуль для работы с графикой, сделайте следуюшее:
- Скачайте архив, содержащий файлы graphics.h (заголовочный файл) и libbgi.a (библиотека). Размер архива 53 Кб.
- Скопируйте файл graphics.h в папку C:\Dev-Cpp\include.
- Скопируйте файл libbgi.a в папку C:\Dev-Cpp\lib.
- Запустите оболочку Dev-C++ и войдите в меню Сервис-Параметры компилятора.
- Перейдите на вкладку Компилятор, включите флажок Добавить эти команды к командной строке компоновщика и добавьте в окно под этим флажком строчку -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32 как на рисунке:
- Чтобы выводить русский текст в графическом режиме, в окне Сервис-Параметры компилятора на вкладке Программы нужно установить программы по умолчанию gcc.exe и g++.exe:
После выполнения этих действий вы можете использовать команды для рисования графических примитивов (отрезков, прямоугольников, окружностей и т.д.), так же, как раньше в Turbo C и Borland C++. Полное описание команд (на английском языке) можно найти на странице Михаэля Майна.
Вот так выглядит простейшая программа, которая выводит на экран отрезок из точки (0,0) (это левый верхний угол окна) в точку (50,50) и ждет нажатия на любую клавишу:
#include int main() < initwindow(400,300); // открыть окно для графики // размером 400 на 300 пикселей moveto(0,0); // курсор в точку (0,0) lineto(50,50); // отрезок в точку (50,50) getch(); // ждать нажатия на любую клавишу closegraph(); // закрыть окно с графикой return 0; >
| Программы, работающие с графикой в таком режиме, должны обрабатываться компилятором языка C++, для этого проще всего сделать у них расширение имени файла *.cpp. |
| В программах, которые не работают с графикой, флажок Добавить эти команды к командной строке компоновщика нужно отключать, иначе при завершении программы будет появляться сообщение об ошибке. |
Как работать с графикой в Windows 8/10?
Спасибо П.Ф. Муль, который прислал ссылку на эту инструкцию.
Проблема состоит в том, что устаревшая версия Bloodshed Dev-C++ 4.9.9.2 не работает в операционных системах Windows 8/10.
Полная инструкция по установке современной версии Dev-C++ и подключению модуля работы с графикой пожно посмотреть на видео How to Make Graphics in Dev C++ on Windows 10.
Для того, чтобы подключить модуль для работы с графикой в Windows 8/10, сделайте следуюшее:
- Скачайте последнюю версию Dev-C++.
- Скачайте архив, содержащий файлы graphics.h, winbgim.h (заголовочные файл) и libbgi.a (библиотека). Размер архива 28 Кб.
Далее предполагается, %Dev-Cpp% — это папка, в которой установлена среда Dev-C++ (например, C:\Program Files (x86)\Dev-Cpp). - Скопируйте файл graphics.h в папку %Dev-Cpp%\MinGW64\x86_64-w64-mingw32\include.
- Скопируйте файл libbgi.a в папку %Dev-Cpp%\MinGW64\x86_64-w64-mingw32\lib.
- Запустите оболочку Dev-C++ и войдите в меню Сервис-Параметры компилятора.
- Перейдите на вкладку Компилятор. Переключитесь на 32-битный компилятор (32-bit Release). Включите флажок Добавить эти команды к командной строке компоновщика и добавьте в окно под этим флажком строчку -lbgi -lgdi32 -luser32 как на рисунке:
- Чтобы выводить русский текст в графическом режиме, в окне Сервис-Параметры компилятора на вкладке Программы нужно установить программы по умолчанию gcc.exe и g++.exe:
Ещё одна инструкция по подключению простой графики от А. Ковалёва:
- Сразу после установки Dev-C++ 5.11 при запуске программы появляется окно с сообщением о недоступности папки lib32: The following library directories don't exist:
C:\Program Files\Dev-Cpp\MinGW64\lib32 Чтобы убрать эту ошибку, нужно скопировать папку lib32 на один уровень
вверх, в папку . \Dev-Cpp\MinGW64. - Файл graphics.h нужно скопировать в две папки: . \Dev-Cpp\MinGW64\include
. \Dev-Cpp\MinGW64\x86_64-w64-mingw32\include - Библиотеку libbgi.a нужно скопировать в четыре папки: . \Dev-Cpp\MinGW64\lib
. \Dev-Cpp\MinGW64\lib32 (это ранее сделанная копия)
. \Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib
. \Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib32 - Выбрать 32-битный компилятор TDM-GCC 4.9.2 32bit Release.
- В параметрах компилятора к командной строке компоновщика добавляется строка
-lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32
Русский интерфейс в Dev-C++

Вот уж не думал, что буду писать статью и делать видео по этой теме. Мне казалось, что такой вопрос никогда ни у кого не может возникнуть. Ан нет. Я ошибся. Такой вопрос возник у одного из читателей. А если он возник у одного, то может возникнуть и у других. Поэтому я и решил написать эту статью. А вопрос, собственно, следующий:
Как установить русский интерфейс в среде разработки Dev-C++
То есть как сделать так, чтобы все надписи в меню и диалоговых окнах были на русском языке.
Сделать это можно двумя способами:
- При установке Dev-C++.
- Через настройки программы, если Dev-С++ уже установлена.
Если вас заинтересовала эта статья, то, скорее всего, при установке вы выбрали другой язык.
В этом случае установить русский язык можно так:
1) В меню TOOLS выбрать ENVIRONMENT OPTIONS.

2) В открывшемся окне выбрать вкладку INTERFACE.
3) В списке LANGUAGE выбрать RUSSIAN.
4) Нажать кнопку ОК.

Всё. Теперь вам будет более понятно то, что я рассказываю в своих книгах и статьях.
Ну а если вам потребуется вновь изменить эти настройки, то в русском интерфейсе путь будет таким:
СЕРВИС — ПАРАМЕТРЫ СРЕДЫ — ИНТЕРФЕЙС — ЯЗЫК.
ПРИМЕЧАНИЕ
Многих трудностей в изучении программирования вы сможете избежать, если будете знать хотя бы в основе английский язык.
Русский язык в исходном коде в Dev C++ [дубликат]
то получается абракадабра! А если перебираю символы циклом, то русские буквы отображаются правильно. Я думаю проблема в различии кодировок dos и windows. Кто знает какие-нибудь примочки для Dev C++ (типа keycyr для pascal) или операторы/функции/процедуры C++ позволяющие сменить кодировку std::cout.
Отслеживать
33.9k 25 25 золотых знаков 130 130 серебряных знаков 222 222 бронзовых знака
задан 12 янв 2012 в 10:18
4,966 10 10 золотых знаков 33 33 серебряных знака 62 62 бронзовых знака
Обычно можно воспользоваться std::wcout и остальными wide-типами/методами. Однако, насколько помню, в Dev-C++ используется по умолчанию MinGW для компиляции кода, то их там просто нет.
12 янв 2012 в 20:43
Зачем вы везде раскопипастили этот костыль? 🙁
7 июн 2012 в 15:25
Потому что он THE BEST и не «везде» а в двух взаимосвязанных вопросах потому что я хочу помочь таким же как я пользователям Хэшкод если никто не смог помочь мне!
8 июн 2012 в 4:56
@Rules, у большинства уже есть свой рабочий способ справиться с этой проблемой и без использования измененного компилятора. Если у вас не получилось воспользоваться их опытом, это не значит что это они не смогли помочь вам.
8 июн 2012 в 9:41
@Rules, в UPDATE к своему старому ответу привел новый способ ввода-вывода с консолью, основанный на ответе @insolor. Сводится к вызову одной функции в самом начале main(). Дальше просто работаете с printf()/fgets()/. — Посмотрите, может понравится.
8 июн 2012 в 22:11
5 ответов 5
Сортировка: Сброс на вариант по умолчанию
С setlocale() по науке правильно, но если локализация кривовата (как у меня на этой машине), то не работает.
В Windows есть 2 функции, CharToOem(char, char) и OemToChar(char, char) для перевода cp-1251 в cp-866 (консоль) и обратно.
#include #include #include #include main ()
В программе набрано в cp-1251 (она же ANSI).
При вводе с консоли, независимо от setlocale() придется переводить кодировку. Также обратите внимание, что параметры командной строки, набранные в консоли поступают в программу в кодировке cp-1251.
Кодировка в файлах обычно подразумевается в cp-1251 , это надо учитывать при переадресации ( > ) вывода ( stdout , stderr ). Я продемонстрировал в примере, как это можно делать.
UPDATE
@insolor дал замечательный ответ как правильно программировать работу с русскими буквами в консоли Windows, используя стандартные функции
SetConsoleCP(1251) и SetConsoleOutputCP(1251) .
В обсуждении (комментариях) к его ответу можно найти различные детали, в частности установку русского шрифта.
Похоже его ответ прошел незамеченным для некоторых участников форума. Поэтому я решил привести функцию, вызов которой в самом начале упрощает программирование ввода/вывода русских букв в Windows и пример ее использования.
#include static int oldin = 0, oldout = 0; static void exitfunc() < SetConsoleCP(oldin); SetConsoleOutputCP(oldout); >void cons1251 () < if (oldin) return; atexit(exitfunc); oldin = GetConsoleCP(); oldout = GetConsoleOutputCP(); SetConsoleCP(1251); SetConsoleOutputCP(1251);
#include // русский текст в кодировке cp1251 (она же ANSI) // обратите внимание, не нужен main()
Вызов fflush(stdout) при работе с консолью (tty) необязателен, однако для вывода в некоторых эмуляторах терминала (например в Emacs eshell) необходим.
Это пример компиляции (Windows 7, Emacs eshell) окно в cp1251 поэтому вывод русского текста и до и после cons1251() одинаковый (и правильный).
c:/Users/avp/src/cc/hashcode $ gcc -c cons1251.c c:/Users/avp/src/cc/hashcode $ gcc rustest.c cons1251.o -o rustest c:/Users/avp/src/cc/hashcode $ ./rustest This is russian [аБвГдЕ] before cons1251() This is russian [аБвГдЕ] after cons1251() Привет - введи часть от "привет" иве Вы ввели: 'иве' да, часть от 'привет' ждем ввода to exit. c:/Users/avp/src/cc/hashcode $ c:/Users/avp/src/cc/hashcode $
К сожалению для стандартного cmd-окошка Copy/Paste не работает, так что попробуйте сами.
Для окна с PowerShell в Win 7 этот метод к сожалению не работает (в отличие от «геморройного» CharToOem / OemToChar ).
Надеюсь этот текст окажется кому-то полезным.
UPDATE 2 (for @Rules)
Исходный файл tt.cpp
#include extern "C" void cons1251(void); main() < std::cout > str; std::cout
c:/Documents and Settings/avp/src/hashcode $ g++ tt.cpp cons1251.o -o tt c:/Documents and Settings/avp/src/hashcode $ ./tt Привет, введите слово Привет, введите слово йцукен Вы ввели: йцукен c:/Documents and Settings/avp/src/hashcode $
Пример вывода из эмулятора терминала Emacs eshell. Поэтому первый «Привет. » тоже состоит из нормальных букв. В обычной консоли там «кракозябры», а дальше нормальная кириллица.
Обращаю особое внимание. Перед запуском надо изменить шрифт в консоли на Lucida Console. Иначе будут кракозябры (но другие). Для замены шрифта кликаете правой кнопкой на надписи «Командная строка» окна консоли. В открывшемся меню выбираете «Свойства». В появившемся окне выбираете вкладку «Шрифт» и там выбираете «Lucida Console». Потом подтверждаете, что попросит.
Если при подтверждении выбрать пункт «Изменить ярлык для запуска этого окна», то новые окна командной строки будут уже с нужным шрифтом.
Как перевести Dev-C++ на русский язык?
Скачал программу Dev-C++ но не знаю как её на русский перевести,в описание сказано что это можно сделать но как?
Лучший ответ
вкладка Tools ->Environment Option -> Interfes->там будет Language ->Russian->Ok. появится вкладка там нажми Continue
Остальные ответы
using namespace std;
system ("pause");
return 0;
>
Похожие вопросы
Ваш браузер устарел
Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.
