Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/50: Рейтинг темы: голосов - 50, средняя оценка - 4.96
-13 / 4 / 3
Регистрация: 08.05.2012
Сообщений: 12
1

Распознавание русских букв консолью

08.05.2012, 17:37. Показов 10225. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, форумчане!
У меня такая проблема. Я бы хотел написать программу с паролем, которая при вводе верного продолжает программу, а иначе запрашивает его вновь. Пароль должен быть на русском языке, но оператор "if" русскую речь воспринимает как каракули. Вот фрагмент кода:
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
setlocale(LC_ALL, "");
cout<<"Представьтесь: ";
S s;
getline(cin,s);
system("cls");
g:cout<<"Пароль: ";
I i;
I u=-1;
string str;
f:while ((i = _getch()) != 13)
{if (i==8) 
{if (u<0)
{cout<<"Стоп!";_getch();system("cls");goto g;}
str.erase(u,1);
u--;
cout<<'\b'<<" "<<'\b';
goto f;}
str += i;
cout << '*';
u++;
}
if (str=="Boss")
{system("cls");cout<<"Приветствую Вас, ";
setlocale(LC_ALL, ".866");
cout<< s;
setlocale(LC_ALL, "");;
cout<<"!\n";system("pause");system("cls");}
else {cout << endl << "Введенный пароль: \"";
setlocale(LC_ALL, ".866");
cout<< str;
setlocale(LC_ALL, "");
cout<<"\" не верен!\n";
system("pause");
system("cls");
goto g;}
Только вместо английского "Boss", хотелось бы видеть русский аналог - "Начальник".
Всем, кто ответит по теме, БОЛЬШОЕ спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2012, 17:37
Ответы с готовыми решениями:

Ввод русских букв
Не могу понять почему при вводе русских символом программа начинает ругаться. Можно ли как-нибудь...

Из русских букв в английские
написал код,который если написать руддщ запишет как Hello я хочу каким то невероятным образом...

Вывод русских букв в консоли
Всем добрый день. Никак не удаётся решить проблему с нормальным выводом русских букв в консоли....

перевод русских букв в транслит
Задача: Перевести русские буквы в транслит, с ведением протокола.

7
0 / 1 / 1
Регистрация: 18.02.2012
Сообщений: 244
08.05.2012, 18:54 2
замени setlocale(LC_ALL, "");
на
setlocale(LC_CTYPE,"Russian");
0
-13 / 4 / 3
Регистрация: 08.05.2012
Сообщений: 12
08.05.2012, 22:56  [ТС] 3
Простите, забыл добавить кое-что:
C++
1
2
typedef string S;
typedef int I;


Добавлено через 32 минуты
_or_75, к сожалению, безрезультатно...

Добавлено через 2 минуты
Если не затруднит, можно ответ с кодом?
0
Заблокирован
Автор FAQ
09.05.2012, 00:59 4
Bourdon, какой у тебя компилятор?
Можешь попробовать руссифицировать через system("chcp 1251"); но потребуется ещё настройка шрифта приложения (это пара щелчков мыши, как это сделать напиано здесь Создание файла в UTF-8 кодировке)
1
-13 / 4 / 3
Регистрация: 08.05.2012
Сообщений: 12
09.05.2012, 12:14  [ТС] 5
-=ЮрА=-, ОГРОМНОЕ спасибо! Все заработало!
Простите за наглость, но не могли бы Вы подсказать мне, как избавиться от строки: "Текущая кодовая страница: 1251"? system ("cls") не помогает, т.к. тормозит (т.е. надпись держится примерно секунду, прежде чем исчезнуть, а я бы хотел, чтобы ее вообще не было). Или это просто моя программа виснет?
Компилятор - Visual C++ 2010.
0
Заблокирован
Автор FAQ
09.05.2012, 20:37 6
Цитата Сообщение от Bourdon Посмотреть сообщение
могли бы Вы подсказать мне, как избавиться от строки: "Текущая кодовая страница: 1251"? system ("cls") не помогает, т.к. тормозит (т.е. надпись держится примерно секунду, прежде чем исчезнуть, а я бы хотел, чтобы ее вообще не было)
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
 
int main()
{
    system("chcp 1251 >> null");
    cout<<"Сразу русский текст без уведомления о перестановке кодовой страницы\n";
    system("pause");
    return 0;
}
Миниатюры
Распознавание русских букв консолью  
1
-13 / 4 / 3
Регистрация: 08.05.2012
Сообщений: 12
09.05.2012, 21:33  [ТС] 7
Спасибо Вам большое, Юрий!
Вы мне очень помогли!
Теперь с радостью продолжу изучать и программировать на C++.
P.S. Надеюсь, эта тема поможет таким же чайникам, как я, потому что сам бился с русификацией консоли около месяца.
0
0 / 1 / 1
Регистрация: 18.02.2012
Сообщений: 244
10.05.2012, 01:17 8
Цитата Сообщение от Bourdon Посмотреть сообщение
Добавлено через 32 минуты
_or_75, к сожалению, безрезультатно...
незнаю как у тебя но у меня работает
0
10.05.2012, 01:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.05.2012, 01:17
Помогаю со студенческими работами здесь

Упорядоченность букв по алфавиту(русских)
Дана строка букв русского алфавита. определить, упорядочены ли буквы по алфавиту

Запрет ввода русских букв....
Ребят подскажите как сделать запрет на использование русских букв в консоли, т.е если вводишь...

Номера русских букв в ASCII
Почему такой код setlocale (LC_ALL, &quot;rus&quot; ); cout&lt;&lt;static_cast&lt;char&gt;(231)&lt;&lt;endl;...

Иероглифы вместо русских букв
Как сделать в С что бы вместо иероглифов были русские буквы


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru