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

Проверка входных данных: вызов и обработка исключения - C++

15.05.2013, 16:03. Просмотров 988. Ответов 1
Метки нет (Все метки)

Всем привет. Не могу разобраться с проверкой входных данных. Нужно чтобы если я ввел какой либо символ вместо числа возбуждалось исключение. После чего нужно было бы ввести новое число. У меня же почему то проваливается в бесконечный цикл. Подскажите если не затруднит

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
#include <iostream>
#include <typeinfo>
using namespace std;
 
int main()
{
        int answer=2847;
        int var=0;
    while(answer!=var)
    {
        cout<<"Input variant: ";
        cin>>var;
        try
        {
            if(!cin>>var) throw runtime_error("you must input int");
            //2 вариант: if(typeid(int)!=typeid(var)) throw runtime_error("you must input int");
        }
        catch (exception &e)
        {
            cerr<<"error: "<<e.what()<<endl;
        }
     }
        return 0;
}
Добавлено через 5 минут
в гугле нашел два варианта и оба к сожалению не работают(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2013, 16:03
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Проверка входных данных: вызов и обработка исключения (C++):

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

Проверка правильности входных параметров конструктора
Как проверить допустимость передаваемых входных параметров конструктора класса?...

Вызов странного исключения в процессе отладке
Во время написание программы(точнее в процессе её отладке) возникла очень...

Обработка исключения
Доброго времени суток, ув. программисты С++. Суть моей проблемы в том, что...

Обработка сиситемного исключения
Друзья как мне переделать код, чтобы была обработка сиситемного исключения?...

Обработка исключения в цикле while
В цикле может возникнуть исключение, которое нужно в цикле же обработать и...

1
anmartex
...
1709 / 1202 / 909
Регистрация: 12.02.2013
Сообщений: 1,978
15.05.2013, 19:58 #2
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
#include <iostream>
#include <stdexcept>
#include <limits>
 
using namespace std;
 
int main()
{
   int var = 0;
   bool quit = false;
   while (!quit)
   {
      cout << "Input variant: ";
      try
      {
         if (!(cin >> var))
         {
            throw runtime_error("you must input int");
         }
         quit = true;
      }
      catch (const exception& error)
      {
         cerr << "error: " << error.what() << endl;
         cin.clear();
         cin.ignore(numeric_limits<streamsize>::max(), '\n');
      }
   }
 
   cout << "var = " << var << endl;
 
   return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2013, 19:58
Привет! Вот еще темы с решениями:

Исключения и проверка ввода
Вот прочитал вчера много всего про исключения в с++, посмотрел несколько...

Проверка треугольника через исключения
Есть код который проверяет возможность создания треугольника из 3х...

Проверка треугольника через исключения
Есть код который проверяет возможность создания треугольника из 3х...

Выход за пределы массива, обработка исключения
Есть такой код, когда я вызываю функцию на вывод массив еще не инициализирован,...


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

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

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