Russian Qt Forum
Ноябрь 26, 2024, 06:57 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: русские буквы в консоли  (Прочитано 3918 раз)
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, а потом пытаюсь его вывести, то выводятся какие-то крокозяблики...
Подскажите, кто знает почему такое происходит и как решить проблему?
Записан
mutineer
Гость
« Ответ #1 : Июнь 19, 2013, 17:19 »

Там ниже есть ветки, разделенные по ОС. Советую написать в соответствующую
Записан
virtual_root
Гость
« Ответ #2 : Июнь 19, 2013, 21:52 »

Я не могу понять почему когда я пытаюсь выставить кодировку на поток ввода такми образом:
Код:
cin.imbue(locale("Russian_Russian.866"));
у меня сразу падает приложение, а в консоль пишется странный текст...

Пыталась пистаь и так
Код:
wcin.imbue(locale("Russian_Russian.866"));
и всё равно тоже самое...
Ребята подскажите почему такое происходит!!!!!
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #3 : Июнь 19, 2013, 21:58 »

что непонятного - locale name not valid. Да и локаль не занимается кодировкой символов - это всего лишь национальные настройки вывода времени, точки в дробном числе и т.п.
« Последнее редактирование: Июнь 19, 2013, 22:06 от Alex Custov » Записан
virtual_root
Гость
« Ответ #4 : Июнь 19, 2013, 22:05 »

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

проблема решилась добавлением этих двух строк
Код:
SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
но правда и в самой консоли нужно было поменять шрифт на  Lucia Console
Можно ли как-то обойти эту проблему по-другому? Чтобы не нужно было менять шрифт в консоли.
Или как программно сменить шрифт в консоли???
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #6 : Июнь 20, 2013, 12:24 »

Хорошо, если так решается, мне пришлось в bison перебивать русские глифы на латинские, что-бы понять об чем он бормочет  Улыбающийся)))
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.063 секунд. Запросов: 22.