|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.04.2012, 15:55 | #11 |
Пользователь
Регистрация: 29.04.2012
Сообщений: 30
|
Все же не получается и с последним кодом. Программа пропускает уже вторую точку или же не замечает ввод букв, завершаясь успешно и пытаясь перевести буквы в тип float. Опишу с комментариями опять что происходит в моей программе (по идее):
Код:
Последний раз редактировалось Stilet; 30.04.2012 в 21:28. |
30.04.2012, 16:24 | #12 |
Пользователь
Регистрация: 02.01.2012
Сообщений: 46
|
опешите просто на словах, что вам нужно(по конкретней)
Неявно не переводится строка в число. Код выше переписал. Последний раз редактировалось ERAGORN; 30.04.2012 в 17:03. |
30.04.2012, 17:00 | #13 | |
Пользователь
Регистрация: 29.04.2012
Сообщений: 30
|
Необходимо написать программу, где при вводе вещественного числа х, процесс защищается от некорректного ввода. Например допускается вводить числа типа "5" или "5.2354" и нельзя вводить нечто вроде "5w", "5.ц2354", ".212" и т.д. В последнем случае программа должна выдавать нечто вроде "Повторите ввод" и запускаться заново. Был бы очень признателен)
Цитата:
Не сможете объяснить вкратце логику вашего кода? Последний раз редактировалось Stilet; 30.04.2012 в 21:30. |
|
30.04.2012, 18:05 | #14 |
Пользователь
Регистрация: 02.01.2012
Сообщений: 46
|
Код:
|
30.04.2012, 18:26 | #15 |
Пользователь
Регистрация: 29.04.2012
Сообщений: 30
|
Я дико извиняюсь, но последний код не позволяет ничего вводить((( Я поменял в функции "проверка" !isdigit(*s) на isdigit(*s), заработало, но начинает пропускать ошибочный ввод вроде we223.23, присваивая переменной number значение 0.
ERAGORN, если у вас будет время, буду признателен, если код будет доработан. Что-то сам я заплутал. Я бы с удовольствием ответил взаимностью, но моя область - математический анализ, общая физика и теория цепей (первый курс). Если необходимо разобрать пример в одном из этих направлений, буду рад помочь чем смогу. Код:
Последний раз редактировалось Stilet; 30.04.2012 в 21:33. |
30.04.2012, 21:15 | #16 |
Пользователь
Регистрация: 02.01.2012
Сообщений: 46
|
дело в том, что нет возможности проверить код который пишу - нет компьютера, пишу с смартфона.
Код:
Последний раз редактировалось ERAGORN; 30.04.2012 в 22:05. |
30.04.2012, 21:37 | #17 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
30.04.2012, 21:58 | #18 |
Пользователь
Регистрация: 02.01.2012
Сообщений: 46
|
Но scanf неконтролирует выход за пределы массива. Если пользователь захочит ввести 20 символов, а у нас размер 10(тоже самое относится к gets).
А в fgets желательное количество символов указывается вторым аргументом(фактически n - 1). Тоесть ввод будет правильный в отношении количества символов. Изменил код выше(поменял тип массива и тип параметра функции с int на char) Последний раз редактировалось ERAGORN; 30.04.2012 в 22:10. |
30.04.2012, 23:00 | #19 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
30.04.2012, 23:32 | #20 |
Пользователь
Регистрация: 02.01.2012
Сообщений: 46
|
Вы наверное перепутали fgets с gets.
http://uk.m.wikipedia.org/wiki/Fgets |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Защита от неправильного ввода | Obey177 | Общие вопросы Delphi | 11 | 19.03.2012 15:57 |
Запрет нажатия кнопки и запрет неправильного ввода данных | De_Kurlzz | Помощь студентам | 1 | 15.06.2011 15:14 |
onKeyPress. Защита от неправильного ввода. | Антон Лысенко | Помощь студентам | 5 | 23.02.2011 17:20 |
Защита от неправильного ввода | Christina_2010 | PHP | 2 | 09.06.2010 13:28 |
Защита от кривого ввода на С++ | survavior | Помощь студентам | 4 | 13.04.2010 17:56 |