21.05.2011, 17:46 | #1 (permalink) | |
Member
Регистрация: 06.05.2011
Сообщений: 3,355
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 12455
|
Dev C++, кириллица и кракозябры
Цитата:
|
|
21.05.2011, 17:46 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Советую вам прочесть аналогичные темы, наверняка вы найдете там что то важное Кракозябры при открытии файла WORD |
21.05.2011, 18:42 | #2 (permalink) |
Member
Регистрация: 20.03.2011
Сообщений: 344
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 680
|
Попробуйте в функцию main() добавить:
Код:
setlocale( LC_ALL, "Russian" ); |
22.05.2011, 01:37 | #3 (permalink) | ||
Member
Регистрация: 06.05.2011
Сообщений: 3,355
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 12455
|
Спасибо, но не помогло, к сожалению. Строчку
Цитата:
Цитата:
|
||
22.05.2011, 02:38 | #4 (permalink) |
Member
Регистрация: 20.03.2011
Сообщений: 344
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 680
|
Видимо функция setlocale() работает только в Visual C++.
Можно использовать функцию CharToOem(), но это довольно муторно. Код:
#include <iostream> #include <windows.h> using namespace std; int main() { char str[] = "Привет мир!\n"; char buf[80]; CharToOem(str, buf); cout << buf; return 0; } |
22.05.2011, 11:34 | #5 (permalink) |
Member
Регистрация: 06.05.2011
Сообщений: 3,355
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 12455
|
Да, такой способ работает, русский текст в консоли отображается в нормальном виде. Как я понял, тут символы сначала записываются в массив, затем преобразуются и лишь потом выводятся на дисплей, сделать это "влет" с Dev C++ как видно не получится. По крайней мере теперь я вижу, что вывод кириллицы возможен, кроме того задумался о необходимости осваивать Visual Studio.
Спасибо большое за участие, а то у меня руки опускаться стали, никак не мог справиться с кракозябрами. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
31.05.2011, 12:05 | #6 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Можно использовать пропатченную версию g++rus.exe, прописав его в Сервис-Параметры компилятора на вкладке Программы вместо g++.exe
Скачать пропатченную можно по ссылке ниже: g++rus.zip
__________________
Убить всех человеков! |
31.05.2011, 17:50 | #7 (permalink) |
Member
Регистрация: 06.05.2011
Сообщений: 3,355
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 12455
|
Попробовал, вроде работает, но как-то через раз. Файлы добавил, нужные исправления сделал. Пару раз скомпилированное консольное приложение корректно отработало, с правильным отображением кириллицы, а затем компилятор отказался нормально работать. Создал новый проект, с нуля, компиляция прошла успешно, но в консоли опять кракозябры. Закончилось все тем, что скачал и установил VS Express, он хотя и нагружает мой маломощный комп на полную катушку, зато с настройками никаких проблем.
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|