Форум программистов, компьютерный форум CyberForum.ru

Обработка исключений при вводе некорректных данных - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Какова роль new int в приведенном коде http://www.cyberforum.ru/cpp-beginners/thread302385.html
Делаю лабораторную. Вот хочу разобраться. Это часть кода, где мы вводим двумерный массив. а что здесь выполняет new int? cout<<"Kol-vo strok massiva: "<< endl; cin>>n; cout<<"Kol-vo stolbtsov massiva: "<< endl; cin>>m; mas=new int*; for(i=0; i<n; i++) mas=new int;
C++ Запись в файл Подскажите, пожалуйста. Мне нужно создать файл и записать в него значения y=5*k, k изменяется в цикле от 0 до 10. Как это сделать? Спасибо. http://www.cyberforum.ru/cpp-beginners/thread302379.html
C++ Вечный календарь
Написал программу "Вечный календарь", которая определяет день недели введенной даты и подсчитует количество дней от введеной даты до сегодня. Но не работает проверка на количество дней в феврале. Помогите пожалуйста найти ошибку. #include "stdafx.h" #include <iostream> #include <time.h> #include <stdio.h> using namespace std; //Прототипы функций
Работа с классами в С++ C++
Доброго всем дня.У меня возникла проблема с освоением языка C++ , сейчас пишу курсовую на этом языке, и ещё не совсем всё понимаю, но книги читаю. В основном "Кериганн и Ричи Философия С и С++" При составлении простой программы. где в функции main идёт обращение к классу, после чего тот класс обращаеть к другому, я получил ошибки такого типа : 1) class.h:9: error: `StartData' does not name a...
C++ Начало вроде написал а дальше не пойму что и как тут... http://www.cyberforum.ru/cpp-beginners/thread302342.html
Задача: Вывести количество девушек которое учатся на каждой из обозначенных специальностей. Входными данными есть: Фио , пол, год рождения #include "stdafx.h" #include <conio.h> #include <iostream> # include <clocale> #include <cmath> #include <conio.h> using namespace std; int main ()
C++ В чем преимущество рекурсивных функций? Насколько я понял, любую рекурсивную функцию можно реализовать итерационно. И при этом, итерационная реализация не переполняет стэк, тоесть использует меньше памяти. В чем тогда приемущество рекурсивных функций? подробнее

Показать сообщение отдельно
Опа!!
14 / 14 / 0
Регистрация: 30.09.2009
Сообщений: 89
23.05.2011, 02:06     Обработка исключений при вводе некорректных данных
День добрый, начал разбираться с исключениями, пока не совсем понимаю в чем их удобство и зачем они нужны, какие преимущества и т.д... но вопрос, вобще-то, не в этом. Возможно ли применить обработку исключительной ситуации в случае некорректного (в плане типа) вводимых данных?

Пример - есть переменная int a; я считываю в нее значение: cin >> a; и ввожу вместо числа, скажем, букву. программа, естественно, вылетает. возможно ли при помощи исключений ухватить эту ошибку и не допустить падения программы? и возможно ли улавливать всякие непредвиденные ошибки, где я не использовал throw?

Добавлено через 1 час 14 минут
Вобщем вот такая вот идиотская защита от ввода не числовых значений при считывании в переменную int:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
cout << "Enter number of students: "; 
cin >> countBuf;
int x = countBuf.length();
for (int i = 0; i < x; i++)
{
    if (!isdigit(countBuf[i]))
    {
            throw 4;
    }
    Student_count = atoi(countBuf.c_str());
}
 
...
 
catch (int i)
{
         ...
         if (i == 4)
    {
         cout << endl << " ---Error!---" << endl << "Count must consist _only_ from digits! Please, try again." << endl;
    }
                
}
Я уверен, такую кривизну можно заменить более лакончиным и красивым способом.. но вот как? помогут ли мне в решении этой задачи try, catch и throw?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru