С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
8 / 8 / 5
Регистрация: 19.11.2012
Сообщений: 438
1

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

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

Author24 — интернет-сервис помощи студентам
Вот кусок кода:
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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2014, 21:51
Ответы с готовыми решениями:

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

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

Защита от дурака
Нужно сделать так что бы в этом куске кода кроме цифр нельзя было нечего вводить(то есть что нельзя...

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

4
Модератор
Эксперт С++
13712 / 10911 / 6477
Регистрация: 18.12.2011
Сообщений: 29,135
18.10.2014, 21:54 2
Цитата Сообщение от qozyrek Посмотреть сообщение
while (a != 1 || a != 2);
while (a != 1 && a != 2);
1
8 / 8 / 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
Модератор
Эксперт С++
13712 / 10911 / 6477
Регистрация: 18.12.2011
Сообщений: 29,135
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
8 / 8 / 5
Регистрация: 19.11.2012
Сообщений: 438
18.10.2014, 22:21  [ТС] 5
zss, благодарю
0
18.10.2014, 22:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.10.2014, 22:21
Помогаю со студенческими работами здесь

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

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

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

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


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

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