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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 116, средняя оценка - 5.00
Naglus
3 / 3 / 0
Регистрация: 04.04.2011
Сообщений: 40
#1

Ввод русских символов. - C++

19.04.2011, 12:14. Просмотров 19237. Ответов 20
Метки нет (Все метки)

Здравствуйте, простите пожалуйста что отвлекаю, я хотел бы спросить как сделать так, что бы русские символы можно было вводить?

Я вот так вот попробывал сделать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
using namespace std;
int main(){
    setlocale(LC_ALL, "Russian");
    const int bukvu = 20;
    char slovo[bukvu];
while(true){    
    cout<<"Введите слово: ";
    cin.getline(slovo, bukvu);
    cout<<"Поидее сдесь должно быть слово: "<<slovo<<endl;
    system("pause");
    cout<<endl;
}
return 0;
}
при выводе введённой информации она отображаеться каракулями.
Подскажите пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2011, 12:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввод русских символов. (C++):

Как настроить ввод русских символов и в дальнейшем вывод этих символов - C++
Подскажите как в этом коде настроить ввод русских символов и в дальнейшем вывод этих символов. Данный код выводит лишь всякую ерунду место...

Ввод русских символов в консоли - C++
Создал консольное приложение, написал примерно вот такой код: int _tmain(int argc, _TCHAR* argv) { setlocale (LC_ALL,&quot;Russian&quot;); ...

Ввод русских букв - C++
Не могу понять почему при вводе русских символом программа начинает ругаться. Можно ли как-нибудь решить эту проблему? #include...

Вывод и ввод русских слов - C++
Мне необходимо вводить слова на русском и чтобы,в дальнейшем,я мог их сравнивать с другими словами и выполнять ещё какие-то операции.В...

необходимо настроить ввод русских симолов - C++
/* STRTOK.C: In this program, a loop uses strtok * to print all the tokens (separated by commas * or blanks) in the string named...

Ввод русских букв в консольно программе - C++
Я добавил в программу #include &lt;locale.h&gt; setlocale(LC_ALL,&quot;russian&quot;); Русский язык заработал. Но только при выводе текста. А...

20
term1t
25 / 25 / 2
Регистрация: 04.03.2011
Сообщений: 61
19.04.2011, 12:18 #2
может так?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <windows.h>
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    const int bukvu = 20;
    char slovo[bukvu];
while(true){    
    cout<<"Введите слово: ";
    cin.getline(slovo, bukvu);
    cout<<"Поидее сдесь должно быть слово: "<<slovo<<endl;
    system("pause");
    cout<<endl;
}
        return 0;
}
1
Naglus
3 / 3 / 0
Регистрация: 04.04.2011
Сообщений: 40
19.04.2011, 12:22  [ТС] #3
Цитата Сообщение от term1t Посмотреть сообщение
может так?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <windows.h>
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    const int bukvu = 20;
    char slovo[bukvu];
while(true){    
    cout<<"Введите слово: ";
    cin.getline(slovo, bukvu);
    cout<<"Поидее сдесь должно быть слово: "<<slovo<<endl;
    system("pause");
    cout<<endl;
}
        return 0;
}
Так вобще одни символы непонятные.
1
diagon
Higher
1932 / 1198 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
19.04.2011, 12:24 #4
У меня ни то, ни другое не работало(RAD Studio 2010), решил проблему с помощью этого поста:
Русские шрифты в консоли
1
term1t
25 / 25 / 2
Регистрация: 04.03.2011
Сообщений: 61
19.04.2011, 12:25 #5
У меня работает, попробуйте сменить шрифт в консоли
1
Naglus
3 / 3 / 0
Регистрация: 04.04.2011
Сообщений: 40
19.04.2011, 12:31  [ТС] #6
Ох блин ничо непонимаю.
0
diagon
Higher
1932 / 1198 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
19.04.2011, 12:36 #7
Просто вставляете в код эту функцию, и далее пишете весь русский текст с помощью Rus("Слово")
Например:
C++
1
cout << Rus("Привет, мир!");
1
Naglus
3 / 3 / 0
Регистрация: 04.04.2011
Сообщений: 40
19.04.2011, 12:47  [ТС] #8
Цитата Сообщение от diagon Посмотреть сообщение
Просто вставляете в код эту функцию, и далее пишете весь русский текст с помощью Rus("Слово")
Например:
C++
1
cout << Rus("Привет, мир!");
А с функцией cin как?
0
diagon
Higher
1932 / 1198 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
19.04.2011, 12:49 #9
C++
1
2
cin >> string;
cout << Rus(string);
1
Naglus
3 / 3 / 0
Регистрация: 04.04.2011
Сообщений: 40
19.04.2011, 12:52  [ТС] #10
У меня вобще с этим Рус неработатет ничо

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
#include<iostream>
#include<windows.h>
using namespace std;
int main(){
 
    cin >> string;
    cout << Rus(string);
    system("pause");
    return 0;
}
наверно эт неправильно.
0
diagon
Higher
1932 / 1198 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
19.04.2011, 13:02 #11
Вы саму функцию не вставили..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream.h>
#include<windows.h>
 
char bufRus[256];
 
char* Rus(const char* text) {
      CharToOem(text, bufRus);
      return bufRus;
      }
 
 
 
int main()  {
    char string[256];
    cin >> string;
    cout << endl <<string;
    return 0;
}
Добавлено через 5 минут
Впрочем это лично у меня и без функции работает
1
Naglus
3 / 3 / 0
Регистрация: 04.04.2011
Сообщений: 40
19.04.2011, 13:57  [ТС] #12
Спасибо большое!

Добавлено через 22 минуты
а как тогда сделать вывод по русски?

Добавлено через 2 минуты
а всё спасибо я понял.

Добавлено через 9 минут
А если мне нужно ввести несколько слов:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream>
#include<windows.h>
using namespace std;
char bufRus[256];
 
char* Rus(const char* text) {
          CharToOem(text, bufRus);
          return bufRus;
          }
 
 
 
int main()  {
        char string[256];
while(true){        
        cout<<Rus("Введите слово(а): ");
        cin.get(string, (что сдесь надо написать чтобы можно было ввести предложение?) ).get();
        cout<<endl<<Rus("Поидее сдесь должно(ы) быть слово(а) : ")<<string<<endl;
        system("pause");
        cout<<endl;
}
return 0;
}
непонимаю.
0
neske
1505 / 872 / 84
Регистрация: 26.03.2010
Сообщений: 2,986
19.04.2011, 14:03 #13
зачем вообще заморачиваться с кириллицей?)
1
Naglus
3 / 3 / 0
Регистрация: 04.04.2011
Сообщений: 40
19.04.2011, 14:07  [ТС] #14
Всем спасибо, я всё понял, вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream>
#include<windows.h>
using namespace std;
char bufRus[256];
 
char* Rus(const char* text) {
          CharToOem(text, bufRus);
          return bufRus;
          }
 
 
 
int main()  {
        char string[256];
while(true){        
        cout<<Rus("Введите слово(а): ");
        cin.get(string, 256).get();
        cout<<endl<<Rus("По идее здесь должно(ы) быть слово(а): ")<<string<<endl;
        system("pause");
        cout<<endl;
}
return 0;
}
0
Muhammed_Sulaye
0 / 0 / 0
Регистрация: 18.01.2012
Сообщений: 12
20.01.2012, 03:29 #15
А в каком С++ вы работаете? ато у меня Turbo C++ IDE какой-то что-ли, и ни библиотеки windows.h не находит ни using namespase не понимает... Или это я туплю, обьясните пожалуйста
0
20.01.2012, 03:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2012, 03:29
Привет! Вот еще темы с ответами:

Ограничение на ввод символов (разрешить ввод только цифр) - C++
Всем доброго времени суток! Я начал изучать С++ и у меня возник такой вопрос: Как ограничить ввод символов (разрешить ввод только...

Сравнение русских символов. - C++
Проблема с русскими символами. Русские символы заносятся в массив занимая две ячейки( 2 байта ). Думаю это связано с UTF-8 кодировкой. ...

Проверка русских символов в строке - C++
Здравствуйте. Эта программка просит ввести строку,и если есть слово, заканчивающиеся на &quot;к&quot; + space, то она должна вывести YES, а если это...

Вывод в консоль русских символов - C++
Парни объясните почему так происходит?? почему не выводятся символы от а до р? ps : setlocal rus .... хз как там, уже пробовал добавлять...


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

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

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