Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.80
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
#1

mingw+ WindowsXP+ юникод+ консоль+ русский язык+ Dev-Cpp. Вот надо разобраться со всем этим благолепием - C++

02.12.2012, 16:40. Просмотров 2623. Ответов 9
Метки нет (Все метки)

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

Если у кого-то есть рабочий пример, дайте исходник и командную строку gcc. Если будет написано не в Dev-Cpp на данном этапе некритично, тоже пойдёт. Я в крайнем случае скомпилю в консоли, а не в IDE. Спасибо, то откликнется.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2012, 16:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос mingw+ WindowsXP+ юникод+ консоль+ русский язык+ Dev-Cpp. Вот надо разобраться со всем этим благолепием (C++):

необходимо разобраться со всем этим благолепием, которое предоставляет студия MSVS - Visual C++
Запрос такой: исходя из имеющихся знаний (C\C++, консоль, чистый API) хотелось бы заняться формошлёпством. Куда мне там тыкать при создании...

Русский язык в консоль - C++
Привет всем, не знаю куда ещё это отнести(модеры сори если не сюда и если доставил больше работы) Я помню когда начинал изучать С/С++,...

Как заставить консоль понимать русский язык? (русские шрифты в консоли) - C++
Добрый вечер. Нужна ваша помощь С++ не понимает русский язык

Как настроить Dev-C++ для GTK под WindowsXP - C++
Уж и незнаю что делать, под Linux без проблем удалось настроить GTK а вот под виндой никак «Hello World» не комилиться. Сначала нашел...

Не могу исправить ошибку :113 H:\Dev-Cpp\Проекты\уроки\Безымянный3.cpp cannot convert `IDirectDraw7**' to `IDirectDraw**' for argument `2' to `HRESULT DirectDrawCreate(GUID*, IDirectDraw**, IUnknown*) - C++
Недавно начал изучать оконные программы и работу с DirectX. Но при написании программы столкнулся с проблемой: не могу исправить одну...

Cpp in minGW - Кроссплатформенная разработка
Доброго дня. Установил себе minGW, хочу скомпилировать файл *.cpp, но возникает проблема: Помогите решить её.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
02.12.2012, 19:20 #2
попробуйте использовать кодировку файла не utf, а windows 1251. Или это обязательное условие?
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
02.12.2012, 19:36  [ТС] #3
При создании исходников в Dev-Cpp используется именно кодировка 1251 и никакая другая; более того, по-моему в Dev-Cpp возможно использовать ИСКЛЮЧИТЕЛЬНО 1251.
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
02.12.2012, 19:41 #4
Цитата Сообщение от kravam Посмотреть сообщение
по-моему в Dev-Cpp возможно использовать ИСКЛЮЧИТЕЛЬНО 1251.
сомневаюсь, наверняка где-то можно менять кодировку...

тогда открываете консоль, Свойства->Шрифт->Lucida Console
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <locale.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL , "Russian");
    cout << "ЫФвфв";
    return 0;
}
компиляция как обычно...
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
02.12.2012, 20:39  [ТС] #5
Цитата Сообщение от ZoRT Посмотреть сообщение
тогда открываете консоль, Свойства->Шрифт->Lucida Console
у меня стоит Lucida Console;

+++++++++++++++++++++++++++++++++++++++++++++++++++

Показываются кракозябры, решается:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <stdio.h>
#include <windows.h>
 
using namespace std;
 
int main()
{
 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
 
    cout << "ыыыыыыы";
    getchar ();
    return 0;
}
++++++++++++++++++++++++++++++++++++++++++++++++

Только вот беда, мы решили совсем другую задачу; мне не нужен русский шрифт в консоли. Мне нужен русский шрифт, используя ЮНИКОД, в консоли...
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
02.12.2012, 21:10 #6
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <locale.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL , "Russian");
    wcout << L"ывф";
    return 0;
}
файл должен быть сохранен с кодировкой utf
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
02.12.2012, 21:51  [ТС] #7
Я создал такой файл с такой кодировкой в NOTEPAD++.exe (проверил в hiewе на всякий случай), потом компильнул:
C++
1
g++ main.cpp
потом запустил a.exe, в результате кракозябры
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
02.12.2012, 23:04 #8
можете скриншот, какие именно кракозябры?

Не по теме:

откуда это слово пошло?

kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
02.12.2012, 23:17  [ТС] #9
вот такие:
Миниатюры
mingw+ WindowsXP+ юникод+ консоль+ русский язык+ Dev-Cpp. Вот надо разобраться со всем этим благолепием  
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
04.12.2012, 18:14  [ТС] #10
Есть у кого какие-нибудь мысли по этому поводу?

Добавлено через 21 час 44 минуты
Короче предварительные выводы такие:
gcc небходим файл в кодировке utf-8; почему я не знаю; но тогда он без труда выведет русский язык:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <locale.h>
#include <stdio.h>
#include <windows.h>
 
using namespace std;
 
int main()
{
 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
    setlocale(LC_ALL , "Russian");
    wcout << L"Привет, мир!";
    wprintf (L"Привет, мир!");
    getchar ();
    return 0;
}
или
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <locale.h>
#include <stdio.h>
#include <windows.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, ".OCP");
    wcout << L"Привет, мир!";
    wprintf (L"Привет, мир!");
    getchar ();
    return 0;
}
в code::block всё выводится без проблем, поскольку там есть возможность сохранить файл в кодировке UTF-8, чего не скажешь про Dev-Cpp; но это в конечном итоге мои проблемы, как пользователя Dev-Cpp

++++++++++++++++++++++++++++++++++++++++++++++++

Но почему gcc не различает где строка вида юникод, а где нет? (имея ввиду, что весь файл не юникодовский):
C++
1
    wprintf (L"Привет, мир!");
Что мешает компилятору увидя "L" поместить в память юникодовскую строку? Просто компилятор на это не расчитан, но почему? Он делает вещи, как впрочем и все компиляторы, а на такой малости спотыкается. Странно, очень странно. Надо будет как-то вернуться к этому вопросу.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2012, 18:14
Привет! Вот еще темы с ответами:

Как поменять юникод на другую кодировку и обратно в dev-c++? - C++ IDE
Чтобы при копировании русских строк из других документов в окно редактора Dev-C++ он не менял их на вопросительные знаки, а то у меня...

Вывод юникод символа в консоль - C++
Здравствуйте. Подскажите пожалуйста как вывести юникод символ в консоль, например этот символ &quot;U+2658&quot;.

Не могу разобраться с PostgreSQL. Поиск по всем таблицам и всем полям? - PostgreSQL
Вообщем у меня следующая проблема... подскажите как сделать поиск по во всех таблицах базы и во всех полях каждой таблицы? в моем...

gotoxy в dev cpp - C++
как записать этот оператор в dev cpp ? gotoxy(1,4); пишет `gotoxy' undeclared (first use this function)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.12.2012, 18:14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru