Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
qozyrek
6 / 6 / 5
Регистрация: 19.11.2012
Сообщений: 438
1

Защита от дурака

18.10.2014, 21:51. Просмотров 1026. Ответов 4
Метки нет (Все метки)

Вот кусок кода:
C++
1
2
3
4
5
6
    do {
    cout << "Выберите вариант решения:" << endl;
    cout << "[1] - первй вариант." << endl;
    cout << "[2] - второй вариант." << endl;
    cin >> a; }
    while (a != 1 || a != 2);
Подскажите в чём проблема, он вечно "ходит" по кругу, даже если ввожу "1" или "2"
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2014, 21:51
Ответы с готовыми решениями:

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

Защита от дурака
Как в этот код добавить защиту от ввода символов? #include &quot;stdafx.h&quot;...

Защита от дурака
нужна защита от дурака пытался реализовать с помощью 2 разных способов не...

Защита от дурака
Помогите, пожалуйста. Программа должна печатать только цифры (а не буквы и...

защита от дурака
Знаю что таких тем уже было много, но в них я ничего полезного не нашел. Так...

4
zss
Модератор
Эксперт С++
7478 / 6847 / 4324
Регистрация: 18.12.2011
Сообщений: 18,113
Завершенные тесты: 1
18.10.2014, 21:54 2
Цитата Сообщение от qozyrek Посмотреть сообщение
while (a != 1 || a != 2);
while (a != 1 && a != 2);
1
qozyrek
6 / 6 / 5
Регистрация: 19.11.2012
Сообщений: 438
18.10.2014, 22:01  [ТС] 3
zss, спасибо

Добавлено через 3 минуты
zss, а вот у меня раньше был вот такой кусочек
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    cout << "Выберите вариант решения:" << endl;
    cout << "[1] - первй вариант." << endl;
    cout << "[2] - второй вариант." << endl;
    cin >> a;
    int z = 0;
    while (z != 1) {
       if ((a != 1) && (a != 2)) {
            system("cls");
            cout << "Видимо, что-то пошло не так. Пожалуйста, повторите Ваш выбор." << endl;
            cin >> a;
        }
        else {
            z++;
        }
Я хотел, чтобы оно и на буквы отказ давало, а не зацикливало. Пробовал "а" делать и Char и int, ничего не помогало. Не подскажете в чём здесь проблема?
0
zss
Модератор
Эксперт С++
7478 / 6847 / 4324
Регистрация: 18.12.2011
Сообщений: 18,113
Завершенные тесты: 1
18.10.2014, 22:13 4
Лучший ответ Сообщение было отмечено qozyrek как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
do
{
  cout << "Выберите вариант решения:" << endl;
  cout << "1 - первй вариант." << endl;
  cout << "2 - второй вариант." << endl;  
  char tmp[3];
  cin.getline(tmp,3);
  if(tmp[0]=='1' || tmp[0]=='2')
  {
      a=tmp[0]-'0';
      break;
  }
   system("cls");
  cout << "Видимо, что-то пошло не так. Пожалуйста, повторите Ваш выбор." << endl;
}while(true);
1
qozyrek
6 / 6 / 5
Регистрация: 19.11.2012
Сообщений: 438
18.10.2014, 22:21  [ТС] 5
zss, благодарю
0
18.10.2014, 22:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2014, 22:21

Защита от дурака
Здравствуйте уважаемые форумчане! я к вам, и вот по какому делу) Вот есть у...

Защита от дурака
Вот только начал изучать С++ помогите составить защиту от дурака пожалуйста,...

Защита от дурака. Разбор кода
всем здравствуйте. Прошу помощи. такова ситуация, есть код защиты от ввода букв...


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

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

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