![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Пользователь
Регистрация: 29.04.2012
Сообщений: 30
|
![]()
Все же не получается и с последним кодом. Программа пропускает уже вторую точку или же не замечает ввод букв, завершаясь успешно и пытаясь перевести буквы в тип float. Опишу с комментариями опять что происходит в моей программе (по идее):
Код:
Последний раз редактировалось Stilet; 30.04.2012 в 21:28. |
![]() |
![]() |
![]() |
#12 |
Пользователь
Регистрация: 02.01.2012
Сообщений: 46
|
![]()
опешите просто на словах, что вам нужно(по конкретней)
Неявно не переводится строка в число. Код выше переписал. Последний раз редактировалось ERAGORN; 30.04.2012 в 17:03. |
![]() |
![]() |
![]() |
#13 | |
Пользователь
Регистрация: 29.04.2012
Сообщений: 30
|
![]()
Необходимо написать программу, где при вводе вещественного числа х, процесс защищается от некорректного ввода. Например допускается вводить числа типа "5" или "5.2354" и нельзя вводить нечто вроде "5w", "5.ц2354", ".212" и т.д. В последнем случае программа должна выдавать нечто вроде "Повторите ввод" и запускаться заново. Был бы очень признателен)
Цитата:
Не сможете объяснить вкратце логику вашего кода? Последний раз редактировалось Stilet; 30.04.2012 в 21:30. |
|
![]() |
![]() |
![]() |
#14 |
Пользователь
Регистрация: 02.01.2012
Сообщений: 46
|
![]() Код:
|
![]() |
![]() |
![]() |
#15 |
Пользователь
Регистрация: 29.04.2012
Сообщений: 30
|
![]()
Я дико извиняюсь, но последний код не позволяет ничего вводить((( Я поменял в функции "проверка" !isdigit(*s) на isdigit(*s), заработало, но начинает пропускать ошибочный ввод вроде we223.23, присваивая переменной number значение 0.
![]() ERAGORN, если у вас будет время, буду признателен, если код будет доработан. Что-то сам я заплутал. ![]() Я бы с удовольствием ответил взаимностью, но моя область - математический анализ, общая физика и теория цепей (первый курс). Если необходимо разобрать пример в одном из этих направлений, буду рад помочь чем смогу. Код:
![]() Последний раз редактировалось Stilet; 30.04.2012 в 21:33. |
![]() |
![]() |
![]() |
#16 |
Пользователь
Регистрация: 02.01.2012
Сообщений: 46
|
![]()
дело в том, что нет возможности проверить код который пишу - нет компьютера, пишу с смартфона.
Код:
Последний раз редактировалось ERAGORN; 30.04.2012 в 22:05. |
![]() |
![]() |
![]() |
#17 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#18 |
Пользователь
Регистрация: 02.01.2012
Сообщений: 46
|
![]()
Но scanf неконтролирует выход за пределы массива. Если пользователь захочит ввести 20 символов, а у нас размер 10(тоже самое относится к gets).
А в fgets желательное количество символов указывается вторым аргументом(фактически n - 1). Тоесть ввод будет правильный в отношении количества символов. Изменил код выше(поменял тип массива и тип параметра функции с int на char) Последний раз редактировалось ERAGORN; 30.04.2012 в 22:10. |
![]() |
![]() |
![]() |
#19 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#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 |