|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.01.2012, 14:25 | #1 |
Регистрация: 06.01.2012
Сообщений: 7
|
Проблема с защитой от некоректного ввода данных.
Не могу придумать(даже найти) качественную защиту.Код на С++.
Суть: 1)Как ограничить строку вводу?(чтоб вводило например 5 до запятой, и еще 3 после, а дальше не давало вводить числа , при этом не заменяя прошлых) 2)Как допустить к вводу только : 0-9 , - e ps у меня получилось только полное ограничение символов кроме цифр. Вот код: Код:
Последний раз редактировалось MaTBeu; 06.01.2012 в 16:06. |
06.01.2012, 14:54 | #2 |
Форумчанин
Регистрация: 28.05.2011
Сообщений: 309
|
ограничение колво ввода, попробуйте cin.getline()
Спеши медленно.
|
06.01.2012, 14:56 | #3 | |
Форумчанин
Регистрация: 28.05.2011
Сообщений: 309
|
Цитата:
Спеши медленно.
|
|
06.01.2012, 15:02 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
С помощью getch() может быть?
И используйте тег [CODE] (значок # ) для сохранения форматирования и подсветки кода в сообщении. Кнопка Правка снизу справа.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
06.01.2012, 15:58 | #5 |
Форумчанин
Регистрация: 29.10.2011
Сообщений: 141
|
Я бы советовал вам с этим не мучиться пока не подойдете к классам в них есть стандартные методы обработки исключений, довольно мощные
|
06.01.2012, 16:07 | #6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
ТС, я думаю вам не стоит выпендриваться, а использовать форматированный ввод С++.
просто контролировать его корректность. вам же нужны числа типа double, вот их и вводите через std::cin>>double. просто обработайте некоректный ввод: http://cplusplus.com/reference/iostr...perator%3E%3E/ раздел Return Value, там все сказано про контроль ошибок ввода. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
06.01.2012, 16:11 | #7 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,619
|
Небольшой примерчик
http://programmersforum.ru/showthread.php?t=182567 |
06.01.2012, 23:38 | #8 |
Регистрация: 06.01.2012
Сообщений: 7
|
Спасибо что откликнулись на мое сообщение, но проблема в том , что я использую Microsoft Visual Studio 2008 там у меня функции типа cin:: и т д не работают, если это возможно, можно как либо переделать код без них например с printf scanf ну такого рода функциями???Буду очень признателен, можно и через getch(), но как))???по поводу допустимых символов это от 0 до 9 , запятая, минус и e(английская , вроде как десятку означает или что-то вроде этого , но ее включить очень важно!), еще сразу вопрос , как можно будет проконтролировать чтоб пользователь не ввел число типо (-45e-,e-13) - ну вообщем чтоб из данных символов бред всякий не лепил, по поводу ограничения предложенная ф-я не работает((((т к из коллекции типа cin::, если это важно я создаю консольное приложение win32.Спасибо еще раз!
Если это поможет могу выложить программу полностью! |
06.01.2012, 23:45 | #9 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
все в студии есть, вы хидеры нужные то подключили?
(кстати у scanf тоже можно контролировать ввод) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
06.01.2012, 23:53 | #10 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
Ну вот я тоже сижу в 2008 студии, и у меня все объекты типа cin работают прекрасно. Я просто делаю вот так: #include <iostream> //теперь можно пользоваться std::cin, std::cin |
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Отмена ввода данных | satka | Microsoft Office Access | 2 | 10.08.2011 00:00 |
Как сделать вывод данных после всего ввода данных. | Donatello | Общие вопросы C/C++ | 6 | 16.01.2011 16:32 |
Дождаться ввода данных | myxaxa41 | Общие вопросы Delphi | 1 | 16.12.2010 13:18 |
Сохранение данных с защитой от изменения | marina15056 | Помощь студентам | 6 | 15.09.2010 08:38 |
Проблема с защитой данных/кодировкой | goldsmir | Общие вопросы C/C++ | 0 | 26.01.2009 14:29 |