Dev c как изменить язык

Как установить русский интерфейс (меню) в среде разработки Dev-C++.

Раздел: Статьи /
С/С++ /
Средства разработки /
Dev-C++ /

Все способы изучить С++

Все способы изучить С++

Начинающие программисты даже не догадываются о том, какой огромный пласт в этой области скрыт от их глаз, и чего многие из новичков не увидят никогда, потому что это тёмная сторона программирования — чистый исходный код системного уровня…
Подробнее…

Вот уж не думал, что буду писать статью и делать видео по этой теме. Мне казалось, что такой вопрос никогда ни у кого не может возникнуть. Ан нет. Я ошибся. Такой вопрос возник у одного из читателей. А если он возник у одного, то может возникнуть и у других. Поэтому я и решил написать эту статью. А вопрос, собственно, следующий:

Как установить русский интерфейс в среде разработки Dev-C++

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

Сделать это можно двумя способами:

  • При установке Dev-C++.
  • Через настройки программы, если Dev-С++ уже установлена.

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

В этом случае установить русский язык можно так:

1) В меню TOOLS выбрать ENVIRONMENT OPTIONS.

Параметры среды в Dev-C++

2) В открывшемся окне выбрать вкладку INTERFACE.

3) В списке LANGUAGE выбрать RUSSIAN.

4) Нажать кнопку ОК.

Русский интерфейс в Dev-C++

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

Ну а если вам потребуется вновь изменить эти настройки, то в русском интерфейсе путь будет таким:

СЕРВИС — ПАРАМЕТРЫ СРЕДЫ — ИНТЕРФЕЙС — ЯЗЫК.

ПРИМЕЧАНИЕ
Многих трудностей в изучении программирования вы сможете избежать,
если будете знать хотя бы в основе английский язык.

Быстрый старт в С++

Быстрый старт в С++

Бесплатная небольшая книга, которую не надо читать полгода, но которая покажет вам, что такое С++ и как начать его изучение. А также поможет решить, надо ли вам это вообще. Кроме того, подписавшись на рассылку, вы будете получать от меня полезные материалы по С++, которые я периодически выпускаю…
Подробнее…

Помощь в технических вопросах

Помощь в технических вопросах

Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение — ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации.
Подробнее…

С setlocale() по науке правильно, но если локализация кривовата (как у меня на этой машине), то не работает.

В Windows есть 2 функции, CharToOem(char, char) и OemToChar(char, char) для перевода cp-1251 в cp-866 (консоль) и обратно.

Пример:

#include <windows.h>                                        
#include <stdio.h>                                          
#include <stdlib.h>                                         
#include <string.h>

main ()
{
    char str[1000], buf[1000];
    int itty = isatty(fileno(stdin)),
        otty = isatty(fileno(stdout));

    strcpy(str, "привет");
    if(otty)
        CharToOem(str, str);
    puts(str);

    fgets(str, 1000, stdin);
    if (itty)
        OemToChar(str, str);

    str[strlen(str) - 1] = ``;
    if (strstr("привет", str))
        strcpy(buf, "да, часть от 'привет'");
    else
        strcpy(buf, "такого нет в слове 'привет'");
    if(otty)
        CharToOem(buf, buf);
    puts(buf);
}

В программе набрано в cp-1251 (она же ANSI).

При вводе с консоли, независимо от setlocale() придется переводить кодировку. Также обратите внимание, что параметры командной строки, набранные в консоли поступают в программу в кодировке cp-1251!!!

Кодировка в файлах обычно подразумевается в cp-1251, это надо учитывать при переадресации (>) вывода (stdout, stderr). Я продемонстрировал в примере, как это можно делать.

UPDATE

@insolor дал замечательный ответ как правильно программировать работу с
русскими буквами в консоли Windows, используя стандартные функции
SetConsoleCP(1251) и SetConsoleOutputCP(1251).

В обсуждении (комментариях) к его ответу можно найти различные детали,
в частности установку русского шрифта.

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

  1. cons1251.c

    #include <windows.h>                                        
    
    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);
    

    }

  2. rustest.c

    #include <stdio.h>                                          
    // русский текст в кодировке cp1251 (она же ANSI)
    // обратите внимание, <windows.h> не нужен
    
    main()
    {
        printf ("This is russian [аБвГдЕ] before cons1251()n");
        cons1251();
        printf ("This is russian [аБвГдЕ] after cons1251()n");
    
    
        char str[1000], buf[1000];
    
        printf ("Привет - введи часть от "привет"n"); fflush(stdout);
    
        fgets(str,1000,stdin);
        str[strlen(str)-1] = 0;
    
        printf("Вы ввели: '%s'n",str); 
        if(strstr("привет",str))
            printf("да, часть от 'привет'n");
        else
            printf("такого нет в слове 'привет'n");
        fflush(stdout);
    
        puts("ждем ввода to exit...");  fflush(stdout);
        fgets(str,1000,stdin);
    }
    

Вызов 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 <iostream>

extern "C" void cons1251(void);

main()
{
    std::cout << "Привет, введите словоn";
    cons1251();
    std::cout << "Привет, введите словоn";
    char str[100];
    std::cin >> str;
    std::cout << "Вы ввели: " << str << std::endl;
}
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». Потом подтверждаете, что попросит.

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

Вроде все.

БлогNot. Русский текст в консольном приложении C++ Builder

Русский текст в консольном приложении C++ Builder

Не помогло ничего из следующего, о чём пишут в интернетах:

(как для Dev-C++) или функции SetConsoleCP , SetConsoleOutputCP , CharToOem .

В учебном ныне C++ Builder 6 под Windows XP SP3 вышло только так:

При этом если перенести текст в другое приложение Windows, увидим опять «кракозябры», в консоли-то писали DOS-кодировкой 🙂

Чтобы сделать подобный проект в C++ Builder, нужно открыть консольное приложение, то есть, выбрать меню File, New, Other, затем на вкладке New выбрать Console Wizard, Sourse Type = C++, все галочки, кроме Console Application можно выключить.

Установка и настройка среды программирования Dev-Cpp

В настоящее время существуют разные среды разработки, позволяющие писать программы на разных языках программирования — в частности на С/С++. Имеется достаточное количество таких программ: как платных, так и бесплатных. Вы можете выбрать любую из них. Найти их для скачивания не составит труда — эти вопросы мы здесь обсуждать не будем. Безусловно, для платформы Windows существует большее количество таких программ, нежели для Mac OS.

Одну из них мы рассмотрим ниже. Это — Dev-C++ (Dev-Cpp) — бесплатная интегрированная среда разработки приложений для языков программирования C/C++. В дистрибутив среды входит компилятор MinGW. Dev-Cpp можно считать бесплатным аналогом Microsoft Visual Studio (хотя у последнего есть бесплатная и очень урезанная версия).
Для наших целей по изучению основ программирования ее возможностей хватит «за глаза». Главное, что установить ее не сложно, как и начать работать в операционной среде Windows.Что касается Dev-C++ (Dev-Cpp), то на настоящий момент он не разрабатывается, вместо него активно разрабатывается порт интерфейса Dev-C++ на wxWidgets — wxDev-C++.

Этапы установки программы

Этап выполняется только в случае установки пакета.

1. Запуск осуществляется с помощью ярлыка, показанного на рис.1.1.

Рис. 1.1. Ярлык запуска

2. После распаковки архива вам предложат выбрать предпочитаемый язык интерфейса программы. В появившемся окне можно выбрать язык интерфейса. Например, английский или русский. Его можно поменять в дальнейшем на любой из имеющегося в списке, изображенного на рис.1.2.

Рис.1.2. Выбор языка интерфейса

Для конкретности выберем русифицированный интерфейс. Необходимо выполнить лицензионное соглашение согласно рис.1.3 и рис. 1.4.

Рис. 1.3.Установка пакета

Рис.1 4. Установка пакета (Далее)

3. Далее вы выбираете категорию, в которой будет установлена программа. По умолчанию это стандартный Program Files. Выбрать опцию: «Установить». Демонстрация установки показана на рис.1.5

После принятия лицензионного соглашения вам будет предоставлена возможность выбрать тип установки программы с теми или иными компонентами.

Установка компонентов программы заканчивается окном приглашения запустить Dev-Cpp — что мы и сделаем, нажав клавишу «Готово» на рис 1.6.

Рис.1.6. Завершение установки (Готово)

В завершении установки на экране появится открытое окно Dev-C++ с установленными компонентами. Вид окна приведен на рис.1.7

Рис.1.7. Открытое окно программы Dev-C++

В данном окне можно набрать текст программы или, если она есть, ее можно вызвать. Для создания новой программы нужно выбрать пункт: «Файл» и в открывшимся подменю: «Создать Исходный файл», а для открытия уже имеющегося файла нужно выбрать подменю: «Открыть заново» или же, используя горячие клавиши — Ctrl + O, что более быстрее. Пример загрузки приведен на рис.1.8.

Рис.1.8. Загрузка файла

Теперь на примере одного из файлов мы посмотрим некоторые настройки программы, которые позволят работать в Dev-C++ с большим комфортом. Любую из программ написанных на С / С++ перед тем как запустить на выполнение (чтобы посмотреть как работает написанная программа) необходимо скомпилировать и только затем запустить на выполнение. Для этого в Dev-C++ используется три пиктограммы/возможности:
1. В окне «Выполнить»выбрать пункт: «Скомпилировать» — простая компиляция программного кода. На данном этапе компилятор проверяет написанный код на наличие ошибок и, если все в порядке — переводит код программы в исполняемый файл — ***.exe. Если же ошибки имеются, то работа компилятора прерывается и в окне «Компилятор» выводятся коды ошибок помогающих их найти и исправить. Тоже действие – набором Горячей клавиши — F9.

2. В окне «Выполнить»выбрать пункт: «Выполнить» — эта команда позволяет многократно запускать наш код без повторной компиляции кода. Тоже действие – наборомГорячей клавиши — F10.

3. В окне «Выполнить»выбрать пункт: « Скомпилировать и выполнить» — если мы хотим сразу посмотреть выполнение нашей программы в консоли после компиляции. Тоже действие – используем пиктограмму «Горячие клавиши — F11».Эти ситуации показаны на рис.1.9.

Рис.1.9. Отладка кода

Все запущенные программы открываются в консольном окне — рис.1.10.

Рис.1.10. Окно результатов

В данном случае специально выбран файл имеющий русский текст — чтобы вы видели, с чем вам может быть придется столкнуться: черное окно с белым текстом и нечитаемыми символами. Сейчас мы исправим это. Правой кнопкой мыши кликаем на верхней части консольного окна и выбираем в самом низу пункт — «Свойства«. В открывшемся окне (рис.1.11) переходим на вкладку — «Шрифт» — и выбираем — «Lucida Console»
Одновременно можно еще и увеличить размер шрифта для отображения текста в консольном окне.

Рис.1.11. Выбор шрифта

Переходим на вкладку — «Цвета». Здесь мы можем изменить цвет фона в консольном окне и цвет шрифта. Если вы предпочитаете белый шрифт на черном фоне, то ничего трогать здесь не нужно. Для лучшего чтения лучше выбрать стандартное отображение текста на белом фоне. Как это сделать показано на рис.1.12.

Рис.1.12.Выбор цвета фона

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

Рис.1.13. Инверсное изображение окна

Для отладки программы иногда целесообразно пронумеровать строки и выбрать размер шрифта. Это можно сделать следующим образом.

Выбрать компонент «Сервис» и в открывшемся окне последовательно выбрать: «Параметры редактора»»Вид шрифта»активировать окно «Номер строки». Окно с выбранными опциями показано на рис.1.14.

Рис.1.14. Выбор параметров шрифта

После настройки пакета можно приступить к программированию исходной задачи.

Работа №1

Базовые операции языка Cи

Цель работы:приобретение навыков программирования линейных процессов. Освоить функции ввода/вывода данных, оператора присваивания.

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций.

Папиллярные узоры пальцев рук — маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни.

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого.

Dev cpp — среда разработки на с и с++, функциональная с/с++ IDE

Dev cpp или Dev с++ IDEсреда разработки на с и с++, графическая надстройка над MinGW GCC компилятором.

IDE бесплатна и с открытым исходным кодом. Поставляется ввиде установщика или портабельной версии, позволяющей легко транспортировать среду программирования вместе с проектами.

В данной статье рассмотрим работу с портабельной версией — это самый удобный способ начать работу с Dev с++ без установки и скомпилировать свой первый проект уже через несколько минут.

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

Первый запуск Dev cpp — инициализация:

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

Следующая опция будет полезна для работы браузера класcов и функций, а также для функционирования автозавершения кода.

Создание кеша для более быстрой работы автозавершения кода в редакторе.

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

Предварительная настройка закончена, жмём «ОК».

Подготовка Dev cpp к работе:

Главное окно программы представлено тремя панелями: слева — менеджер проектов и браузер классов, по центру — редактор, и снизу — информационная панель.

При первом старте программы вам предложат ознакомиться с «советами дня», рекомендуется прочитать их внимательно.

Прочитав советы, перейдём в главное меню -> «Сервис», именно в этом разделе хранятся основные настройки IDE.

Выбираем пункт «Параметры среды» и в появившемся диалоговом окне на вкладке «Общие» настроим окно хода компиляции, отметив чекбокс «Закрывать по окончании».

На вкладке «Ассоциации файлов» выберем типы файлов для открытия их в Dev cpp.

Сохраним настройки — жмём «ОК».

Первый проект в Dev c++ :

В папке с распакованной IDE приготовлены несколько интересных примеров в директории «Examples». Одним из них мы и воспользуемся.

На панели инструментов нажимаем кнопку «Открыть проект или файл» или жмём горячие клавиши Ctrl + o.

Переходим по папкам в директории с распакованной программой: «Examples» -> «WinTest» и открываем файл проекта «WinTest.dev».

Открывшийся проект представляет из себя базовое оконное приложение на c++ c использованием WinAPI и с элементарной функциональностью. Его исходный код вы можете изучить в окне редактора.

Снова воспользуемся панелью инструментов и запустим проект — жмём кнопку «Скомпилировать и выполнить» или просто клавишу F9. Откроется диалоговое окно, сообщающее о ходе компиляции, по окончании оно будет закрыто и запустится собственно окно нашей программы.

Прочитав приветствие, окошко можно уже закрыть и обратить внимание на нижнюю панель с вкладками, где можно получить исчерпывающую информацию о том, что мы только что сделали. Как видим — ошибок нет, есть одно предупреждение.

Создание нового Dev c++ проекта :

Потренировавшись со стандартными примерами можно приступить к созданию своей программы.

На панели инструментов нажимаем кнопку «Проект. » .

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

Обратите внимание, не следует использовать кириллицу в названиях проектов и файлов, это предотвратит возникновение ошибок с именами файлов.

Вот уж не думал, что буду писать статью и делать видео по этой теме. Мне казалось, что такой вопрос никогда ни у кого не может возникнуть. Ан нет. Я ошибся. Такой вопрос возник у одного из читателей. А если он возник у одного, то может возникнуть и у других. Поэтому я и решил написать эту статью. А вопрос, собственно, следующий:

Как установить русский интерфейс в среде разработки Dev-C++

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

Сделать это можно двумя способами:

    .

  • Через настройки программы, если Dev-С++ уже установлена.

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

В этом случае установить русский язык можно так:

1) В меню TOOLS выбрать ENVIRONMENT OPTIONS.

Параметры среды в Dev-C++

2) В открывшемся окне выбрать вкладку INTERFACE.

3) В списке LANGUAGE выбрать RUSSIAN.

4) Нажать кнопку ОК.

Русский интерфейс в Dev-C++

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

Ну а если вам потребуется вновь изменить эти настройки, то в русском интерфейсе путь будет таким:

Как поменять язык в dev c

В консольных приложениях русские буквы выводятся к кодировке CP-866, а в оболочке Dev-C++ они набираются в кодировке CP-1251. Это значит, что вместо русских букв вы увидите «кракозябры». Чтобы этого не случилось, кодировку нужно исправить с помощью простой дополнительной программы. Сделайте следующее:

    , содержащий программы gccrus.exe и g++rus.exe (193 Кб).

  1. Скопируйте программы gccrus.exe и g++rus.exe в папку C:Dev-Cppbin (если при установке оболочки вы указали другой каталог вместо стандартного C:Dev-Cpp, скопируйте программы в его подкаталог bin).
  2. Запустите оболочку Dev-C++ и войдите в меню Сервис-Параметры компилятора.
  3. Перейдите на вкладку Программа и исправьте названия двух первых программ так, как показано на рисунке.

Написание простых графических программ

Для того, чтобы подключить модуль для работы с графикой, сделайте следуюшее:

    , содержащий файлы graphics.h (заголовочный файл) и libbgi.a (библиотека). Размер архива 53 Кб.

  1. Скопируйте файл graphics.h в папку C:Dev-Cppinclude.
  2. Скопируйте файл libbgi.h в папку C:Dev-Cpplib.
  3. Запустите оболочку Dev-C++ и войдите в меню Сервис-Параметры компилятора.
  4. Перейдите на вкладку Компилятор, включите флажок Добавить эти команды к командной строке компоновщика и добавьте в окно под этим флажком строчку

-lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32

После выполнения этих действий вы можете использовать команды для рисования графических примитивов (отрезков, прямоугольников, окружностей и т.д.), так же, как раньше в Turbo C и Borland C++. Полное описание команд (на английском языке) можно найти на странице Михаэля Майна.

Вот так выглядит простейшая программа, которая выводит на экран отрезок из точки (0,0) (это левый верхний угол окна) в точку (50,50) и ждет нажатия на любую клавишу:

Русский язык в исходном коде в Dev C++ [дубликат]

то получается абракадабра! А если перебираю символы циклом, то русские буквы отображаются правильно. Я думаю проблема в различии кодировок dos и windows. Кто знает какие-нибудь примочки для Dev C++ (типа keycyr для pascal) или операторы/функции/процедуры C++ позволяющие сменить кодировку std::cout.

user avatar

С setlocale() по науке правильно, но если локализация кривовата (как у меня на этой машине), то не работает.

В Windows есть 2 функции, CharToOem(char, char) и OemToChar(char, char) для перевода cp-1251 в cp-866 (консоль) и обратно.

В программе набрано в cp-1251 (она же ANSI).

При вводе с консоли, независимо от setlocale() придется переводить кодировку. Также обратите внимание, что параметры командной строки, набранные в консоли поступают в программу в кодировке cp-1251.

Кодировка в файлах обычно подразумевается в cp-1251 , это надо учитывать при переадресации ( > ) вывода ( stdout , stderr ). Я продемонстрировал в примере, как это можно делать.

UPDATE

@insolor дал замечательный ответ как правильно программировать работу с русскими буквами в консоли Windows, используя стандартные функции
SetConsoleCP(1251) и SetConsoleOutputCP(1251) .

В обсуждении (комментариях) к его ответу можно найти различные детали, в частности установку русского шрифта.

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

Вызов fflush(stdout) при работе с консолью (tty) необязателен, однако для вывода в некоторых эмуляторах терминала (например в Emacs eshell) необходим.

Это пример компиляции (Windows 7, Emacs eshell) окно в cp1251 поэтому вывод русского текста и до и после cons1251() одинаковый (и правильный).

К сожалению для стандартного cmd-окошка Copy/Paste не работает, так что попробуйте сами.

Для окна с PowerShell в Win 7 этот метод к сожалению не работает (в отличие от «геморройного» CharToOem / OemToChar ).

Надеюсь этот текст окажется кому-то полезным.

UPDATE 2 (for @Rules)

Исходный файл tt.cpp

Пример вывода из эмулятора терминала Emacs eshell. Поэтому первый «Привет. » тоже состоит из нормальных букв. В обычной консоли там «кракозябры», а дальше нормальная кириллица.

Обращаю особое внимание. Перед запуском надо изменить шрифт в консоли на Lucida Console. Иначе будут кракозябры (но другие). Для замены шрифта кликаете правой кнопкой на надписи «Командная строка» окна консоли. В открывшемся меню выбираете «Свойства». В появившемся окне выбираете вкладку «Шрифт» и там выбираете «Lucida Console». Потом подтверждаете, что попросит.

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

Этот сайт больше не обновляется. Сайт К. Полякова «Преподавание, наука и жизнь»
переехал по адресу kpolyakov.spb.ru.
Новый адрес страницы, к которой вы обратились:

Пожалуйста, обновите свои закладки. Через 5 секунд вы будете перенаправлены
на новый сайт автоматически.

Оболочка Dev-C++ для Windows

ЧаВо = Часто задаваемые Вопросы

Список вопросов

  1. Как настроить русский язык в консольных программах?
  2. Как писать простые графические программы?

Как настроить русский язык в консольных программах?

В консольных приложениях (похожих на текстовый режим)
русские буквы выводятся к кодировке CP-866, а в оболочке
Dev-C++ они набираются в кодировке CP-1251. Это значит, что
вместо русских букв вы увидите «кракозябры». Чтобы этого не
случилось, кодировку нужно исправить с помощью простой
дополнительной программы. Сделайте следующее:

  1. Скачайте архив, содержащий программы
    gccrus.exe и g++rus.exe (193 Кб).
  2. Скопируйте программы
    gccrus.exe и g++rus.exe в папку C:Dev-Cppbin
    (если при установке оболочки вы указали другой каталог
    вместо стандартного C:Dev-Cpp, скопируйте
    программы в его подкаталог bin).
  3. Запустите оболочку Dev-C++ и войдите в меню Сервис-Параметры компилятора.
  4. Перейдите на вкладку Программа и исправьте названия двух первых программ так,
    как показано на рисунке.

    Русский язык в Dev-C++

  5. Теперь при выводе на экран можно смело использовать русские буквы,
    они будут «на лету» перекодироваться.

Примечание от Ю. Проценко: Если программа при запуске
не обнаруживает библиотеки libintl-8.dll
и libiconv-2.dll,
их нужно поместить в каталог C:WINDOWSSYSTEM32.

Как писать простые графические программы?

Для того, чтобы подключить модуль для работы с графикой,
сделайте следуюшее:

  1. Скачайте архив, содержащий файлы
    graphics.h (заголовочный файл) и libbgi.a (библиотека).
    Размер архива 53 Кб.
  2. Скопируйте файл graphics.h в папку C:Dev-Cppinclude.
  3. Скопируйте файл libbgi.a в папку C:Dev-Cpplib.
  4. Запустите оболочку Dev-C++ и войдите в меню
    Сервис-Параметры компилятора.
  5. Перейдите на вкладку Компилятор, включите флажок Добавить эти команды к командной строке компоновщика
    и добавьте в окно под этим флажком строчку

    -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32

    как на рисунке:

    Графика в Dev-C++

  6. Чтобы выводить русский текст в графическом режиме, в окне Сервис-Параметры компилятора
    на вкладке Программы нужно установить программы по умолчанию
    gcc.exe и g++.exe:

    Программы по умолчанию в Dev-C++

После выполнения этих действий вы можете использовать
команды для рисования графических примитивов (отрезков, прямоугольников,
окружностей и т.д.), так же, как раньше в Turbo C и
Borland C++. Полное описание команд (на английском языке)
можно найти на
странице Михаэля Майна.

Вот так выглядит простейшая программа, которая выводит на экран отрезок
из точки (0,0) (это левый верхний угол окна) в точку (50,50) и ждет нажатия
на любую клавишу:

#include <graphics.h>
int main()
{
initwindow(400,300); // открыть окно для графики
                     // размером 400 на 300 пикселей
moveto(0,0);         // курсор в точку (0,0)
lineto(50,50);       // отрезок в точку (50,50)
getch();             // ждать нажатия на любую клавишу
closegraph();        // закрыть окно с графикой
return 0;
}

Mr. Pyatachok, опять же — хотелось бы СТАНДАРТНЫМ способом, а не апишным, к тому же устаревшим.

Вот некоторый ликбез по широким строкам:

Для ввода/вывода русских символов и строк необходимо установить русскоязычный локальный констекст (локаль — locale). Локаль [1-22.1.1] — это объект, инкапсулирующий национальные особенности внешнего представления данных вроде символа-разделителя целой и дробной части в числах, формата даты и тому подобные «мелочи» [1-22.1.1.1.1]. Заодно локаль устанавливает и нужную кодировку. Вообще-то локали устроены довольно сложно — в стандарте [1] этой теме посвящен раздел 22, занимающий почти 50 страниц, но мы рассмотрим только простейшие применения для работы с потоками.

Для работы с локалями нужно прописать в программе оператор

После этого можно объявлять в программе объекты-локали., например

C++
1
locale american;        // установки по умолчанию

Установки по умолчанию, естественно, американские. Но ни объявление локалей, ни стандартные американские установки нас не интересуют. Локальный контекст устанавливается для потока.

Чтобы выводить русские символы на консоль, мы должны установить русскую локаль для wcout, а чтобы вводить русские символы нужно установить русскую локаль для wcin. Это делается с помощью метода потока imbue()[1-27.4.2.3], который имеет прототип

C++
1
locale imbue(const locale& L);

Параметром служит объект-локаль, но его не обязательно объявлять в программе — можно использовать временный анонимный объект, например

C++
1
wcout.imbue(locale("rus_rus.866"));

В данном случае русский контекст установлен для стандартного широкого потока wcout. Аргумент локали — строка «rus_rus.866». Эта строка называется именем локального контекста, и ее вид зависит от реализации . Это имя можно получить в виде строки типа string с помощью метода name() класса locale.

C++
1
2
locale loc ("rus_rus.866");
cout << loc.name( ) << endl;

На экран выведется
Russian_Russian.866

Это полное имя локали, мы же писали сокращенное. Первое слово Russian означает язык — русский, второе Russian — страна, 866 — кодовая страница.

После установки русской локали на экран в консольное окно нормально выводятся русские сообщения, например

C++
1
2
3
wstring s(L"Привет!");
wcout << L"Снова привет!" << endl;
wcout << s << endl;

Однако правильно выводятся только широкие русские строковые константы — в отличие от английских строковых констант, «узкие» русские строковые константы выводятся неправильно.

ПРИМЕЧАНИЕ
Можно установить русский контекст и для «узких» потоков. Однако в системе Windows консольные программы работают в специальном консольном окне, для которого система по умолчанию устанавливает 866 кодовую страницу как для ввода, так и для вывода. Когда же мы набираем текст программы в окне интегрированной среды, то установлена кодовая страница 1251, и русские константы записываются в программу в этой кодировке. Поэтому даже при установлении русской локали для потока cout русские текстовые константы выводятся неверно.

Для ввода русских букв нужно точно таким же способом задать русский контекст для входного широкого потока wcin

C++
1
wcin.imbue(locale("rus_rus.866"));

После этого можно будет вводить русские строки и символы обычными способами, которые мы рассматривали выше, например

C++
1
2
3
4
5
6
wstring s;
getline(wcin, s);       // ввод широкой строки с пробелами
wchar_t g[100]; 
wcin.getline(g,99);     // ввод символьного массива с пробелами
wcin.get(ch);           // ввод широкого символа
ch = wcin.get();        // ввод широкого символа

Все введенные символы нормально выводятся на экран.

Текущий локалный контекст можно сохранить как объект-локаль с помощью метода getloc(), который имеет прототип

C++
1
locale getloc() const;

Можно установить «классический» локальный контекст С с помощью метода

C++
1
static const locale& classic( );

Можно установить некоторую локаль по умолчанию методом

C++
1
static locale global(const locale& L);

Применять эти методы можно так:

C++
1
2
3
4
5
locale current = wcout.getloc();    // сохранение текущей локали
wcout.imbue(locale::classic());     // установка классической локали
wcout.imbue(locale(“C”));           // тоже установка классической локали
wcout.imbue(current);               // восстановление прежней локали
locale::global(current);            // установка контекста по умолчанию

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Deus ex mankind divided ошибка при запуске приложения 0xc0000906
  • Deus ex mankind divided ошибка драйвера дисплея
  • Deus ex mankind divided не запускается на windows 10 ошибка 0xc0000142
  • Deus ex mankind divided dxgi error device hung
  • Deus ex invisible war как изменить разрешение

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии