Перейти к содержимому

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

  • автор:

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

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

Отслеживать
34k 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++

Основы программирования 2.0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Настройка интегрированных сред для языков C и C++

PrevNext

На данной странице приводятся указания по настройке сред Visual Studio, Dev-C++, Code::Blocks и VS Code для выполнения учебных заданий на языках C и C++.

Среда Visual Studio 2017, 2019, 2022 (язык C++)

1. Скачайте и установите среду Visual Studio требуемой версии с сайта Microsoft https://visualstudio.microsoft.com/ru/downloads/. Для корректной работы с программами на языке C++ необходимо установить расширение «Разработка классических приложений на С++», используя программу Visual Studio Installer (для установки новых расширений для одного из имеющихся вариантов Visual Studio надо нажать кнопку Изменить рядом с описанием этого варианта).

2. Запустите программу PT4Setup, входящую в состав электронного задачника (Пуск | Все программы | Programming Taskbook 4 | PT4 Setup), и убедитесь, что задачник обнаружил среду Microsoft Visual C++ соответствующей версии (2017, 2019 или 2022). Если путь к исполняемому файлу devenv.exe не найден задачником, то укажите его, нажав кнопку Обзор. При стандартной установке данный файл располагается в каталоге C:\Program Files\Microsoft Visual Studio\XXXX\Community\Common7\IDE или C:\Program Files (x86)\Microsoft Visual Studio\20XX\Community\Common7\IDE , где каталог 20XX соответствует номеру версии (2017, 2019 или 2022). Закройте программу PT4Setup.

В результате описанных действий задачник будет настроен для использования в среде Visual Studio для языка С++.

Среда Dev-C++ (языки C и C++)

1. Скачайте и установите среду Dev-C++. Версию 5.11 можно скачать с сайта https://sourceforge.net/projects/orwelldevcpp/ (можно также воспользоваться следующей ссылкой). Версию 6.30 можно скачать с сайта https://www.embarcadero.com/ru/free-tools/dev-cpp (хотя удобнее воспользоваться следующей ссылкой). Версия 6.30 включает более новый вариант компилятора MinGW; кроме того, встроенный в нее редактор поддерживает кодировку UTF-8.

2. Запустите программу PT4Setup, входящую в состав электронного задачника (Пуск | Все программы | Programming Taskbook 4 | PT4 Setup), и убедитесь, что задачник обнаружил среды Dev-C++ (C) и Dev-C++ (C++) (вариант среды Dev-C++ для языка C добавлен в версии задачника 4.23). Если путь к исполняемому файлу devcpp.exe не найден задачником, то укажите его, нажав кнопку Обзор. При стандартной установке данный файл располагается в каталоге C:\Program Files (x86)\Dev-Cpp для версии 5.11 и в каталоге C:\Program Files (x86)\Embarcadero\Dev-Cpp для версии 6.30. Закройте программу PT4Setup.

В результате описанных действий задачник будет настроен для использования в среде Dev-C++ для языков C и С++.

Среда Code::Blocks (языки C и C++)

1. Скачайте и установите среду Code::Blocks 20.03 с 32-разрядным вариантом системы MinGW, используя ссылку https://www.fosshub.com/Code-Blocks.php. В списке доступных вариантов Необходимо выбрать вариант Code Blocks Windows 32 bit (including 32 bit compiler). При отсутствии требуемого варианта дистрибутив можно скачать по следующей ссылке.

2. Запустите программу PT4Setup, входящую в состав электронного задачника (Пуск | Все программы | Programming Taskbook 4 | PT4 Setup), и убедитесь, что задачник обнаружил среды Code::Blocks (C) и Code::Blocks (C++) (вариант среды Code::Blocks для языка C добавлен в версии задачника 4.23). Если путь к исполняемому файлу codeblocks.exe не найден задачником, то укажите его, нажав кнопку Обзор. При стандартной установке данный файл располагается в каталоге C:\Program Files (x86)\CodeBlocks . Закройте программу PT4Setup.

3. Запустите программу PT4Load, входящую в состав электронного задачника, в ее окне вызовите контекстное меню (нажав правую кнопку мыши) и выберите в нем пункт Code::Blocks (C) или Code::Blocks (C++). В поле Задание (или Task при использовании английского интерфейса) укажите имя какого-либо задания (например, Begin1) и нажмите клавишу [Enter] или кнопку Загрузка (Load). Созданная заготовка должна загрузиться в редактор Code::Blocks. В меню Code::Blocks выполните команду Settings | Compiler. , в появившемся окне перейдите на вкладку Toolchain executables и убедитесь, что в поле ввода Compiler installation directory указан путь к подкаталогу MinGW системного каталога Code::Blocks (например, C:\Program Files (x86)\CodeBlocks\MinGW ). Если в данном поле содержится другой путь, то замените его на указанный выше. Закройте окно настройки, нажав кнопку OK. Запустите созданную заготовку, нажав клавишу [F9]. При успешной настройке среды Code::Blocks должно появиться окно задачника с выбранным заданием.

В результате описанных действий задачник будет настроен для использования в среде Code::Blocks для языков C и С++.

Среда VS Code

1. Установите среду Dev-C++ или Code::Blocks, выполнив действия, указанные в соответствующих подразделах.

2. Установите среду VS Code https://code.visualstudio.com/download#, вариант Windows, 64 bit, User Installer или System Installer (при выборе System Installer среда устанавливается в каталоге C:\Program Files , при выборе User Installer — в подкаталоге каталога, связанного с текущим пользователем, например, C:\Users\\AppData\Local\Programs\Microsoft VS Code ).

3. Запустите программу PT4Setup, входящую в состав электронного задачника (Пуск | Все программы | Programming Taskbook 4 | PT4 Setup), и убедитесь, что задачник обнаружил среду Visual Studio Code (C) и Visual Studio Code (C++) (вариант среды Visual Studio Code для языка C добавлен в версии задачника 4.23). Если путь к исполняемому файлу Code.exe не найден задачником, то укажите его, нажав кнопку Обзор.

4. В том же разделе программы PT4Setup выберите среду Visual Studio Code (C++), нажмите кнопку Дополнительная настройка (F9) и убедитесь, что в появившемся окне Дополнительная настройка указан путь к компилятору g++ из дистрибутива MinGW (выбирается компилятор, входящий в состав системы Dev-C++ или Code::Blocks, ранее настроенной для задачника). Если задачник не смог автоматически обнаружить путь к компилятору g++, можно указать его, нажав в окне Дополнительная настройка кнопку Обзор. По умолчанию файл g++.exe располагается в подкаталоге MinGW64\bin системного каталога среды Dev-C++ 5.11, в подкаталоге TDM-GCC-64\bin системного каталога среды Dev-C++ 6.30 и в подкаталоге MinGW\bin системного каталога среды Code::Blocks 20.03.

Выполните аналогичные действия для среды Visual Studio Code (C). В данном случае в окне Дополнительная настройка надо указать указан путь к компилятору gcc из дистрибутива MinGW. Файл gcc.exe находится в тех же каталогах, что и файл g++.exe, использованный при настройке среды Visual Studio Code (C++).

Закройте программу PT4Setup.

5. Запустите программу PT4Load, входящую в состав электронного задачника, в ее окне вызовите контекстное меню (нажав правую кнопку мыши) и выберите в нем пункт Visual Studio Code (C) или Visual Studio Code (C++). В поле Задание (или Task при использовании английского интерфейса) укажите имя какого-либо задания (например, Begin1) и нажмите клавишу [Enter] или кнопку Загрузка (Load). Созданная заготовка (файл с расширением .c или .cpp) должна загрузиться в редактор VS Code. При первой загрузке файла редактор VS Code может предложить установить расширение (extension) для языка C++. В этом случае достаточно нажать кнопку Install:

Если указанное выше окно не появится, то установить расширение для языка C++ можно, выполнив стандартные действия для установки новых расширений: отобразите в левой части окна VS Code панель Extensions со списком доступных расширений (нажав кнопку или комбинацию клавиш [Ctrl]+[Shift]+[X]), выберите из списка расширений вариант C/C++ Extension Pack (Microsoft) и нажмите связанную с ним кнопку Install. Чтобы отобразить список расширений для языка C++, достаточно ввести текст C++ в поле поиска в верхней части панели Extensions.

После установки данного расширения появится возможность запускать программы C и C++ из среды VS Code нажатием клавиши [F5].

В результате описанных действий задачник будет настроен для использования в среде VS Code для языков C и C++.

Примечание. При попытке откомпилировать и запустить программу на языках C или C++ из среды VS Code без предварительной установки нужного расширения будет выведено окно с сообщением об ошибке, которое надо закрыть, нажав кнопку Cancel. Ниже приведен вариант сообщения об ошибке в случае языка C++:

Программирование на C, C# и Java

Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы

ОСТОРОЖНО МОШЕННИКИ! В последнее время в соиальных сетях учстились случаи педложения помощи в написании прогамм от лиц, прикрвающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в псторонних группах ВК. Для связи с нами используйте исключительно эти контакт: vscoderu@yandex.ru, https://vk.com/vscode

Как включить русский язык в Си

На начальных этапах программирования многие новички сталкиваются с такой проблемой: они в коде пишут какое-либо сообщение на русском языке для консоли (например, используя printf), но при запуске программы вместо русских слов появляются какие-то непонятные знаки. Покажем, как избавиться от этой проблемы.

Например, при запуске вот этой программы:

#include "stdafx.h"
int _tmain ( int argc , _TCHAR* argv [ ] )
printf ( "Всем привет! Как дела?" ) ;

В консоли будет отображено следующее:

Как включить русский язык в Си - vscode.ru

Всё дело в том, что мы не подключили русскую локализацию.

Исправить эту ошибку очень легко!

Для начала надо добавить следующую библиотеку:

Она отвечает за локализацию.

А затем нам надо просто написать в начале тела кода вот эту строку:

setlocale ( LC_ALL , "Rus" ) ;

Функция setlocale задаёт локализацию программы. По умолчанию это только английский язык.
LC_ALL указывает программе, что локализированы будут все функции.

«Rus», как легко догадаться говорит о том, что локализация произойдёт на русский язык.

Вот и всё! Мы включили русский язык в Си. Наша программа модернизирована и обогащена на две строки. Теперь она будет выглядеть вот так:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *