Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
slipp1
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
1

Русский язык в консоли

29.11.2012, 00:27. Просмотров 2093. Ответов 9
Метки нет (Все метки)

для работы с русским языком использую:

#include <locale>
setlocale(LC_CTYPE, "Russian");

но в програме мне нужно вводить через cin>> руские буквы
как результат записываются другие буквы, тоесть:

C++
1
2
3
char symbol;
cin>>symbol;//к примеру ввожу букву ц руского языка
cout<<symbol;//выводится ж
откровенный бред, что делать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2012, 00:27
Ответы с готовыми решениями:

Русский язык в консоли
При вводе русских букв в консоль (cin &gt;&gt; a), функция просто не работает,...

Русский язык в консоли
Допустим вот код cout &lt;&lt; &quot;Помогите пожалуйста!&quot;; Пробовал и setlocale и...

Русский язык в консоли
Здравствуйте.У меня следующая проблема:Когда я записываю русский текст в...

Русский язык в консоли
Скажу сразу, что закрепленную тему я прочитал, но не очень понял, как это...

Русский язык в консоли
Здравствуйте! Перепробовал все способы в соответствующей теме - ничего не...

9
OKS_by_V
1 / 1 / 1
Регистрация: 15.05.2011
Сообщений: 78
29.11.2012, 00:44 2
Попробуй так
C++
1
2
3
4
system("chcp 1251"); //или std::locale::global(std::locale(""));
char symbol;
cin>>symbol;//к примеру ввожу букву ц руского языка
cout<<symbol;//выводится ж
0
slipp1
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
29.11.2012, 00:55  [ТС] 3
не помогло
0
HidForce
57 / 57 / 24
Регистрация: 17.11.2012
Сообщений: 1,602
29.11.2012, 01:00 4
C++
1
setlocale (LC_ALL, "RUS.UTF-8");
0
slipp1
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
29.11.2012, 01:08  [ТС] 5
Цитата Сообщение от HidForce Посмотреть сообщение
Код C++
1
setlocale (LC_ALL, "RUS.UTF-8");
не то
0
HidForce
57 / 57 / 24
Регистрация: 17.11.2012
Сообщений: 1,602
29.11.2012, 01:10 6
Цитата Сообщение от slipp1 Посмотреть сообщение
не то
Не может быть! У меня все работает! Попробуйте скомпилировать вот этот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale (LC_ALL, "RUS.UTF-8");
 
    char a;
 
    cin >> a;
    cout << a;
 
 
    return 0;
}
0
slipp1
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
29.11.2012, 01:32  [ТС] 7
с твоимм кодом в консоли вводит и выводит нормально но если в программе через cout<<"привет" - выводит бред

Добавлено через 6 минут
заработало в таком варианте
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
using namespace std;
 
int main()
{
    //для работы с русским текстом
    // установить вручную шрифт Lucida Console в свойствах окна консоли 
    // и запомнить это для всех окон с этим именем
    system("chcp 1251");
 
    cout<<"привет"<<endl;
    
    char a;
    cin>>a;
    cout<<a<<endl;
    return 0;
}
Добавлено через 4 минуты
еще работает вот этот вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
using namespace std;
#include<math.h>
#include<windows.h>
 
char bufRus[256];
 
char* Rus(const char* text) {
      CharToOemA(text, bufRus);
      return bufRus;
      }
int main()  {
    cout << Rus("Привет ,Лопух!")<< endl;
    system("pause");
    char a;
    cin>>a;
    cout<<a<<endl;
    return 0;
    
}
Добавлено через 36 секунд
что самое обидное - непонятно как они рабботают...
0
HidForce
57 / 57 / 24
Регистрация: 17.11.2012
Сообщений: 1,602
29.11.2012, 01:42 8
Цитата Сообщение от slipp1 Посмотреть сообщение
еще работает вот этот вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
using namespace std;
#include<math.h>
#include<windows.h>
 
char bufRus[256];
 
char* Rus(const char* text) {
      CharToOemA(text, bufRus);
      return bufRus;
      }
int main()  {
    cout << Rus("Привет ,Лопух!")<< endl;
    system("pause");
    char a;
    cin>>a;
    cout<<a<<endl;
    return 0;
    
}
Добавлено через 36 секунд
что самое обидное - непонятно как они рабботают...
CharToOem - функция, которая преобразовывает строку в ANSI кодировку.
0
SEvg
85 / 85 / 1
Регистрация: 16.10.2012
Сообщений: 305
29.11.2012, 11:33 9
Переходите на Линукс, и всё будет нормально работать...

Без всяких заморочек в консоли русские буквы выводит, если исходник сохранён в кодировке UTF-8
0
Alex Kireev
5 / 10 / 1
Регистрация: 21.11.2017
Сообщений: 108
19.12.2017, 23:31 10
Хоть я и не от мира сего, но позвольте ВАМ помочь.
Есть ещё один способ.
Для этого надо установить библиотеку и про (setlocale(LC_ALL,"")); можно будет забыть.
Вот в этом архиве есть библиотека русского языка и инструкция как её установить.
Работает в DEV C++.
0
Вложения
Тип файла: zip prus.zip (9.36 Мб, 2 просмотров)
19.12.2017, 23:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2017, 23:31

Русский язык в консоли
Здраствуйте, у меня такой вот вопрос: Почему когда я пишу текст на русском...

Русский язык в консоли
Как сделать запись в файл и чтение с него русскими буквами а не иероглифами?

Русский язык в консоли
Здравствуйте, Столкнулся с банальной проблемой При вводе-выводе в текстовый...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru