Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
#1

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

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

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

#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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Русский язык в консоли (C++):

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

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

Русский язык в консоли - C++
Здравствуйте. Чего-то не разберусь с русским языком. setlocale(LC_ALL,&quot;RUSSIAN&quot;); и setlocale(LC_ALL,&quot;1251&quot;); - классно. Мне...

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

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

Русский язык в консоли Qt 5.3 - C++
помогите пожалуйста

8
OKS_by_V
1 / 1 / 0
Регистрация: 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 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
29.11.2012, 00:55  [ТС] #3
не помогло
0
HidForce
56 / 56 / 13
Регистрация: 17.11.2012
Сообщений: 1,602
29.11.2012, 01:00 #4
C++
1
setlocale (LC_ALL, "RUS.UTF-8");
0
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
29.11.2012, 01:08  [ТС] #5
Цитата Сообщение от HidForce Посмотреть сообщение
Код C++
1
setlocale (LC_ALL, "RUS.UTF-8");
не то
0
HidForce
56 / 56 / 13
Регистрация: 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 / 1
Регистрация: 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
56 / 56 / 13
Регистрация: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2012, 11:33
Привет! Вот еще темы с ответами:

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

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

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

Указатель и снова про русский язык в консоли - C++
Здравствуйте.Указатель не возвращает русские буквы. Пишу что то на русском, возвращает набор символов, на анг все норм. Как можно...


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

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
29.11.2012, 11:33
Ответ Создать тему
Опции темы

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