Russian Qt Forum

Qt => Вопросы новичков => Тема начата: virtual_root от Июнь 19, 2013, 17:17



Название: русские буквы в консоли
Отправлено: virtual_root от Июнь 19, 2013, 17:17
Не могу понять что надо добавить чтобы можно было введенный мною текст вывести в нормальной кодировки.
Код:
#include <iostream>

int main()
{
    setlocale(LC_ALL, "Russian");

    string s;
    cout<< "введите слово\n";
    cin>>s;      // ввела РУССКОЕ слово
    cout<<s;   // вывелись какие-то непонятные символы
    return 0;
}

При выводе текст выводится русский. Но когда я считываю русский текст в переменную s, а потом пытаюсь его вывести, то выводятся какие-то крокозяблики...
Подскажите, кто знает почему такое происходит и как решить проблему?


Название: Re: русские буквы в консоли
Отправлено: mutineer от Июнь 19, 2013, 17:19
Там ниже есть ветки, разделенные по ОС. Советую написать в соответствующую


Название: Re: русские буквы в консоли
Отправлено: virtual_root от Июнь 19, 2013, 21:52
Я не могу понять почему когда я пытаюсь выставить кодировку на поток ввода такми образом:
Код:
cin.imbue(locale("Russian_Russian.866"));
у меня сразу падает приложение, а в консоль пишется странный текст...
(http://www.helper.program21.ru/imgFromOtherSites/console.PNG)
Пыталась пистаь и так
Код:
wcin.imbue(locale("Russian_Russian.866"));
и всё равно тоже самое...
Ребята подскажите почему такое происходит!!!!!


Название: Re: русские буквы в консоли
Отправлено: Alex Custov от Июнь 19, 2013, 21:58
что непонятного - locale name not valid. Да и локаль не занимается кодировкой символов - это всего лишь национальные настройки вывода времени, точки в дробном числе и т.п.


Название: Re: русские буквы в консоли
Отправлено: virtual_root от Июнь 19, 2013, 22:05
а какой нужно поставить чтобы всё заработало?? Или как ещё можно решить проблему ввода русских букв?


Название: Re: русские буквы в консоли
Отправлено: virtual_root от Июнь 19, 2013, 22:19
проблема решилась добавлением этих двух строк
Код:
SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
но правда и в самой консоли нужно было поменять шрифт на  Lucia Console
Можно ли как-то обойти эту проблему по-другому? Чтобы не нужно было менять шрифт в консоли.
Или как программно сменить шрифт в консоли???


Название: Re: русские буквы в консоли
Отправлено: panAlexey от Июнь 20, 2013, 12:24
Хорошо, если так решается, мне пришлось в bison перебивать русские глифы на латинские, что-бы понять об чем он бормочет  :))))