Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> распознание русскрй кодировки, распознание русскрй кодировки CodeBlocks 
:(
    Опции темы
Darcman
Дата 4.4.2010, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 13.6.2007

Репутация: нет
Всего: нет



Здравствуйте
пишу на CodeBlocks, что бы я не написал на русском выводится в непонятной кодировке, в консольном приложении, может вопрос освещался уже, тогда дайте ссылку. Заранее благодарен. 

Прикрепляю пример кода
Код

//Первая программа на С++
#include <iostream.h>

int main()
{
cout << "Добро пожаловать в С++";
return 0; //показывает, что программа успешно окончена
}


А вот откомпилированный ответ CodeBlocks 
user posted image
PM MAIL   Вверх
sergejzr
Дата 4.4.2010, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Проскроль эту страницу до конца вниз. Раздел "А здесь смотрели?" smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
ИванМ
Дата 4.4.2010, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: 3
Всего: 23



setlocale
CharToOem

Это сообщение отредактировал(а) ИванМ - 4.4.2010, 21:20
PM MAIL   Вверх
GoldFinch
Дата 4.4.2010, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



алсо надо бы писать #include <iostream> а не <iostream.h>
PM MAIL ICQ   Вверх
Trotter
Дата 5.4.2010, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.10.2006
Где: Нижний Новгород

Репутация: нет
Всего: 0



Код

//Первая программа на С++
#include <iostream.h>
#include <locale>

int main()
{
setlocale(LC_ALL, "Russian");
cout << "Добро пожаловать в С++";
return 0; //показывает, что программа успешно окончена
}

PM MAIL ICQ   Вверх
TaNK
Дата 5.4.2010, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: 1
Всего: 1



*.h
Код

#ifndef RUSSIAN_H_INCLUDED
#define RUSSIAN_H_INCLUDED

#include <iostream>
#include <windows.h>


void  Rus (const char*, short n = 0);


void  Rus (const char*  ch, short n)
{
    using namespace std;

    char* rus_char = new char[strlen(ch)+1];
    CharToOem(ch,rus_char);

    switch(n)
    {
        case 0  : cout << rus_char << endl; break;
        case 1  : cout << rus_char << " " ; break;
        default : cout << rus_char << endl; break;
    }

    delete [] rus_char;
}

#endif


*.cpp
Код

Rus("Нельзя отрицательную сумму вносить на счет!");



--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
Тигер
Дата 5.4.2010, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 4.4.2010

Репутация: нет
Всего: нет



локаль не везде будет работать со стримом

лучший способ, это пользоваться WINAPI.
см. SetConsoleOutputCP(); SetConsoleCP(); GetACP();
PM MAIL   Вверх
ИванМ
Дата 5.4.2010, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: 3
Всего: 23



Цитата(Тигер @  5.4.2010,  12:59 Найти цитируемый пост)
лучший способ, это пользоваться WINAPI.
см. SetConsoleOutputCP(); SetConsoleCP(); GetACP(); 

Это тоже от всех проблем не избавит. Если через WInAPI, то все равно придется использовать CharToOem (или OemToChar smile ), для преобразования переменной после ввода.
PM MAIL   Вверх
Тигер
Дата 5.4.2010, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 4.4.2010

Репутация: нет
Всего: нет



а тут написано так

http://msdn.microsoft.com/en-us/library/ms...3(v=VS.85).aspx
Цитата

Sets the input code page used by the console associated with the calling process. A console uses its input code page to translate keyboard input into the corresponding character value.


PM MAIL   Вверх
ИванМ
Дата 5.4.2010, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: 3
Всего: 23



Тигер, ну напиши работающий код с использованием WinApi без использования CharToOem / OemToChar. Поставлю плюс.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0697 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.