С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
kolhir
0 / 0 / 1
Регистрация: 10.12.2015
Сообщений: 2
1

Преобразование русских символов, функция gets

10.12.2015, 17:18. Просмотров 455. Ответов 1

При вводе английских букв все работает, но мне нужно обрабатывать строку из русских, но почему-то функции gets и getline считывают вместо русских букв кракозябру.
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <clocale>
using namespace std;
 
int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "Russian");
   
    int l[4] = {0, 0, 0, 0};
    char S[500];
    cout << "Введите последовательность символов" << endl;
    gets(S);
    cout << S;
    cout << endl;
    int k = 1;
    int i = 0;
    while ( k == 1) {
        
        if ((S[i] == 'ш') || (S[i] == 'Ш')) l[0] = 1;
        if ((S[i] == 'и') || (S[i] == 'И')) l[1] = 1;   
        if ((S[i] == 'н') || (S[i] == 'Н')) l[2] = 1;   
        if ((S[i] == 'а') || (S[i] == 'А')) l[3] = 1;   
        if (S[i] == '\0') k = 0;
        ++i;
    }
    k = 1;
    for(i = 0; i < 4; ++i){
        cout << l[i] << endl;
        if (l[i] == 0) k = 0; 
    }
    
    if  (k == 1) cout << "В строке есть все буквы, входящие в слово шина" << endl;
        else cout << "В строке нет букв, входящих в слово шина" << endl;
        
    
    
    
    
  
    system("pause");
    return 0;
}
Во вложении скриншот работы программы.
Кто-нибудь знает почему?
Заранее спасибо.
0
Миниатюры
Преобразование русских символов, функция gets  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2015, 17:18
Ответы с готовыми решениями:

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

Сравнение русских символов.
Проблема с русскими символами. Русские символы заносятся в массив занимая две...

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

Запись русских символов в char
Добрый день господа!!! Мне нужно в поле char name записать 14 русских...

Вывод русских символов в консоль
Чтобы выводить русские буквы в консоли, написал функцию rustext() ...

1
kolhir
0 / 0 / 1
Регистрация: 10.12.2015
Сообщений: 2
11.12.2015, 01:58  [ТС] 2
Проблему решил, если кому интересно то я добавил две строки:
Вместо вот этой
C++
1
 setlocale(LC_ALL, "Russian");
Вот эти:
C++
1
2
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2015, 01:58

Неправильный ввод русских символов
Тема поднималась уже не раз, но у меня, похоже, особый случай. При запуске...

Проверка русских символов в строке
Здравствуйте. Эта программка просит ввести строку,и если есть слово,...

Корретное отображение русских символов
Здравствуйте, подскажите пожалуйста как моножно решить следующую проблемму:...


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

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

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