Форум программистов, компьютерный форум 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
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
23.05.2011, 07:33     Обработка исключений при вводе некорректных данных
C++
1
2
3
4
5
6
7
8
for (int i = 0; i < x; i++)
{
        if (!isdigit(countBuf[i]))
        {
                throw 4;
        }
        Student_count = atoi(countBuf.c_str());
}
разве этот кусок работает правильно? если допустим
countBuf[0] = '5'
countBuf[1] = 'a'
if будет пройден успешно(на первой итерации), throw не сработает, сработает atoi которой вернёт тебе, судя из cplusplus.com, zero. Ошибки вроде бы не будет в результате, но мне кажется это работает не так, как ты задумывал

Помоему надо вынести строку
C++
1
Student_count = atoi(countBuf.c_str());
после цикла? ты X раз переводишь(пытаешься переводить) строку в число. Это не рационально.
И ещё я думаю, что в такой програмулине не стоит нагромождать try и catch. Их преимущество в том, что ты в одном участке кода выбрасываешь исключение, например в собственном классе, а в самой программе или другом классе обрабатываешь?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru