Форум программистов, компьютерный форум 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++ В чем преимущество рекурсивных функций? Насколько я понял, любую рекурсивную функцию можно реализовать итерационно. И при этом, итерационная реализация не переполняет стэк, тоесть использует меньше памяти. В чем тогда приемущество рекурсивных функций? подробнее

Показать сообщение отдельно
pito211
 Аватар для pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
23.05.2011, 14:11     Обработка исключений при вводе некорректных данных
покажи весь листинг, не видно где у тебя блок try

если это какая-то функция, допустим она называется fuck() для определённости,
Цитата Сообщение от Опа!! Посмотреть сообщение
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());
}
...
и ты её вызываешь в main() то должно быть примерно так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
try 
{
     fuck();
}
catch (int i)
{
     switch (i) 
     {
     case 1:
          cerr << "Error 1" << endl;
          break;
     case 2:
          cerr << "Error 2" << endl;
     ...
     default:
          cerr << "Fatal error" << endl;
          exit(i);
     }
}
как то так примерно?

Добавлено через 45 минут
и в качестве альтернативы твоему коду могу предложить такой вариант

C++
1
2
3
4
5
6
7
        int fuck;
    
    if ( !(cin >> fuck) )
    {
        cin.clear();
        throw(4);
    }
только учти, что если ты введёшь 4qwefds то никакого исключения выработано не будет, а fuck = 4, исключение будет выработано если введёшь йцу543ке34н4 например. Зато не надо никаких стрингов, преобразований к char* и вобще это более "сиплюсплюсный вариант", а у тебя сейчас комбинация из си и си++
 
Текущее время: 14:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru