Russian Qt Forum

Программирование => С/C++ => Тема начата: stima от Март 23, 2012, 15:40



Название: c++ locale
Отправлено: stima от Март 23, 2012, 15:40
Проблема с выводом русских букв в консоль. Маленькая ремарка, при появление руских букв в консоль ничего не выводиться !но программа дольше коректо выполняеться, как это понять?)
Я пробывал:

Код:
int main()
{
    //Вариант 1:
    setlocale(LC_ALL, "");
    std::cout << setlocale(LC_ALL, NULL) << std::endl; //возвращяет "C"

    //Вариант 2:
    try {
         std::locale::globale(std::locale(""));
    } catch (std::exeption &e)
    {
        std::cout << e.what() << std::endl; // Возвращает "Bad locale"
    }

    //Вариант 3:
    TCHAR wlocale[255]; //это юникод строка
    GetSystemDefaultLocaleName(wlocale, 255); // Возвращает "ru_Ru"
    _tsetlocale(LC_ALL, wlocale);
    std::cout << setlocale(LC_ALL, NULL) << std::endl; // Возвращяет "C";

    //Варинат 4:
    // тотже только для std::locale()
    return 0;
}

маленькое замечание, надо ставить не только русскую локаль, а установленную на системе.