Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2012, 19:51   #1
Vadiliy
Пользователь
 
Регистрация: 30.11.2012
Сообщений: 43
По умолчанию Русский язык в консоле

Всем доброго времени суток. Я начинающий программист на С++. Подскажите какой командой можно сделать так, чтобы консоль распознавала вводимый русский язык? Заранее спасибо.
Vadiliy вне форума Ответить с цитированием
Старый 18.12.2012, 20:05   #2
alexey_kip
Форумчанин
 
Регистрация: 19.11.2011
Сообщений: 198
По умолчанию

чтобы ты мог печать текст в консоль подключи locale.h и в мэйне
Код:
setlocale(0,"RUSSIAN")
alexey_kip вне форума Ответить с цитированием
Старый 18.12.2012, 20:06   #3
alexey_kip
Форумчанин
 
Регистрация: 19.11.2011
Сообщений: 198
По умолчанию

А чтобы считывать - считываешь как обычный чар и юзаешь функцию CharToOem
alexey_kip вне форума Ответить с цитированием
Старый 18.12.2012, 20:13   #4
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

если под виндой, то:

Код:
#ifdef _WIN32
       //Если мы работаем в ОС Windows, то будит произведена дополнительная настройка консоли
    
        #pragma message("TestConsole: подготовка консоли WIN32")
        #include "windows.h" //конкретно сейчас нужен для того, что бы компилятор знал о существовании SetConsoleOutputCP(), SetConsoleCP();
        
        static void* ConsolePrepare() 
        {
            SetConsoleOutputCP(1251);    SetConsoleCP(1251);      //не удалять! Русский букв!!!
            std::cout.setf(std::ios::fixed,std::ios::floatfield); //увеличивает точность показа дробной части в консоли
            return NULL;
        }
        static void* pGlobalTempConsole( ConsolePrepare() ); //всегда будит равна NULL
    #else
        #pragma message("TestConsole: создание макроса происходит не для WIN32...")
        /* нужно как то по другому подготовить консоль*/
    #endif
#endif
И не нужны никакие тормозные CharToOem

Вынеси этот файлик куда нить в хэдэр, и инклюдь перед main()
Больше ничего не нужно делать

Последний раз редактировалось _Bers; 18.12.2012 в 20:15.
_Bers вне форума Ответить с цитированием
Старый 18.12.2012, 20:55   #5
Vadiliy
Пользователь
 
Регистрация: 30.11.2012
Сообщений: 43
По умолчанию

Спасибо всем!))
Vadiliy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Русский язык Dima-War Общие вопросы C/C++ 12 06.11.2012 19:40
C++ на русский язык fkorto Общие вопросы C/C++ 6 29.04.2010 15:12
Русский язык Sanek_ntsk Общие вопросы C/C++ 9 06.03.2008 16:50
Русский язык [Smarik] Паскаль, Turbo Pascal, PascalABC.NET 7 01.02.2008 22:58
РУССКИЙ ЯЗЫК vicdon Паскаль, Turbo Pascal, PascalABC.NET 3 19.11.2007 14:34