|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.01.2012, 13:47 | #1 |
Регистрация: 15.01.2012
Сообщений: 4
|
Защита от некорректного ввода.Вопрос
Приветствую всех.Вот моя функция защиты от некорректного ввода.
Код:
в результате работы выделенного if, у меня на любой последующий ввод выводится сообщение "Слишком большое...." Заранее спасибо. Последний раз редактировалось Denis147; 15.01.2012 в 16:44. |
15.01.2012, 14:02 | #2 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
У Вас у самого от этого кода в глазах не рябит?
Приводить его в порядок, для того что-бы разобраться никто не будет. И оформляйте код по-правилам.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
15.01.2012, 14:11 | #3 |
Регистрация: 15.01.2012
Сообщений: 4
|
я не прошу разбираться в наборе флагов на каждый if внутри цикла. мне интересен только выделенный кусочек.
Последний раз редактировалось Denis147; 15.01.2012 в 14:19. |
15.01.2012, 14:16 | #4 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Вне контекста всей программы, ваш "кусочек" ни о чём не говорит.
Единственное, что можно сказать errno==ERANGE и err==0, поэтому и срабатывает оператор if.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
15.01.2012, 14:58 | #5 |
Регистрация: 15.01.2012
Сообщений: 4
|
заменил не просто if (num>(1.7E38)){
puts("\nСлишком большое число, введите заново"); num=def_double();} пусть данные будут в диапазоне float....теперь все работает Привел код в более-менее смотрабельный вид. Не подскажете ли как сделать проверку на факт ввода данных. Т.е. если не вводить данные, а нажать просто "Enter", чтобы программа возвращалась к началу цикла do-while. В защите на натуральные числа я просто сделал проверку на то, чтобы введенное число не равнялось 0. Но в действительном типе число может равняться 0, поэтому не могу ничего дельного придумать( Последний раз редактировалось Denis147; 15.01.2012 в 15:46. |
15.01.2012, 16:19 | #6 | |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 224
|
Цитата:
Принимай своё число в виде строки, и проверяй длину. Если ничего не ввели, то нулевая. Если что-то ввели, тогда уже получай из строки значение нужного типа.
Люди бывают 10 типов: те, кто понимают двоичную систему счисления, и те, кто не понимают...
|
|
15.01.2012, 16:42 | #7 |
Регистрация: 15.01.2012
Сообщений: 4
|
Работает.Большое спасибо
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Защита от некорректного ввода в Edit (Delphi) | nika17 | Помощь студентам | 4 | 04.05.2011 12:19 |
onKeyPress. Защита от неправильного ввода. | Антон Лысенко | Помощь студентам | 5 | 23.02.2011 17:20 |
защита строки после ввода данных | Akmal-Sharipov | Microsoft Office Excel | 5 | 09.12.2010 08:40 |
Защита от неправильного ввода | Christina_2010 | PHP | 2 | 09.06.2010 13:28 |
Защита от кривого ввода на С++ | survavior | Помощь студентам | 4 | 13.04.2010 17:56 |