Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2008, 18:44   #1
Иллидан
Форумчанин
 
Регистрация: 16.01.2008
Сообщений: 288
По умолчанию Ловить все ошибки

Как сделать, что-бы код "ловил" ошибку?
Код:
int main()
{

unsigned int a;

cin>>a;\\ мне нужно, что-бы при вводе число меньше нуля всегда генерировалась ошибка

}
Иллидан вне форума Ответить с цитированием
Старый 19.05.2008, 18:51   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Есть такая тема в С++ как Обработка исключений. Как раз для таких целей как у вас.
MaTBeu вне форума Ответить с цитированием
Старый 19.05.2008, 19:01   #3
Иллидан
Форумчанин
 
Регистрация: 16.01.2008
Сообщений: 288
По умолчанию

А как ее тут внедрить ведь, когда вводится число < 0 , ошибка то не генерируется: не вызывается не терминатор не abort()?
Иллидан вне форума Ответить с цитированием
Старый 19.05.2008, 19:07   #4
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

А. Если так. Тогда вам поможет вот такой код
Код:
cin>>a;
if(a<0)
{
     cout<<"Error. Operand must be greather than 0\n";
     exit(1);
}
else
//выполняем программу в обычном режиме
MaTBeu вне форума Ответить с цитированием
Старый 19.05.2008, 19:08   #5
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Еще есть потоковый вывод ошибок.
Код:
cerr<<"Error";
Примерно так.
MaTBeu вне форума Ответить с цитированием
Старый 19.05.2008, 19:22   #6
Иллидан
Форумчанин
 
Регистрация: 16.01.2008
Сообщений: 288
По умолчанию

Нет, вы меня не совсем поняли, тогда мне придется каждый раз вводить переменную, которая может быть меньше 0 и прверять, что неудобно. А мне надо, что-бы работало, как на паскале Read (если значение не соответствует типу, то ошибка). Это можно сделать? Может какую-нибудь директиву использовать?
Иллидан вне форума Ответить с цитированием
Старый 19.05.2008, 19:34   #7
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

ну делай scanf ом. например scanf("%d",i) примет только число. если введешь что то другое вылетит ошибка. но зачем тебе это надо? как правильно сказали, используй исключения, либо проверяй, что ввели
vvviperrr вне форума Ответить с цитированием
Старый 19.05.2008, 19:37   #8
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Необязательно вводить переменную. Просто напишите функцию. Которая возвращает true - если число больше нуля, и false - если меньше. Можно даже ее сделать шаблонной. А насчет директив... не знаю. Честно скажу, впервые с таким вопросом сталкиваюсь.
MaTBeu вне форума Ответить с цитированием
Старый 19.05.2008, 20:01   #9
Иллидан
Форумчанин
 
Регистрация: 16.01.2008
Сообщений: 288
По умолчанию

Цитата:
Сообщение от vvviperrr Посмотреть сообщение
ну делай scanf ом. например scanf("%d",i) примет только число. если введешь что то другое вылетит ошибка.
А если я введу число меньше нуля не вылетает...
Иллидан вне форума Ответить с цитированием
Старый 19.05.2008, 20:03   #10
Иллидан
Форумчанин
 
Регистрация: 16.01.2008
Сообщений: 288
По умолчанию

Цитата:
Необязательно вводить переменную. Просто напишите функцию. Которая возвращает true - если число больше нуля, и false - если меньше. Можно даже ее сделать шаблонной. А насчет директив... не знаю. Честно скажу, впервые с таким вопросом сталкиваюсь.
__________________
И как я проверю, больше ли у меня нуля беззнаковое число?
Иллидан вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Две ошибки Crivel Помощь студентам 10 31.07.2008 12:18
Ошибки delphin100 Операционные системы общие вопросы 12 17.04.2008 14:15
Как "Ловить" сообщения приложения? Air Win Api 5 26.02.2008 19:26
Ошибки Terran Общие вопросы Delphi 3 05.02.2008 20:47