![]() |
|
Модераторы: bsa |
![]()
|
|
| titanrem |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 1.10.2008 Репутация: нет Всего: нет |
Такой вопрос по языку С.
Пользователь вводит два числа и считается частное. Как обезопасить программу от ввода пользователем вместо числа символа?? Так чтобы, если пользователь ввел символ, а программа в консоль написала сообщение, а не считала |
|||
|
||||
| sQu1rr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 3 Всего: 13 |
считывать надо не сразу в int, а в char
потом проверять на ненужные символы (легче проверить на нужные, сосчитать их и сравнить с длиной строки). Если такие имеются, то вывести сообщение (лучше исключение) Если таковых нету, то через atoi или _atoi64 переводете в int или __int64 соответсвенно. Если нужно в число с плавающей точкой, то нужно самому написать програмку Если нужно могу скинуть у меня есть перевод char * в любую переменную (сам делал, когда С++ проходил (ну типо для начинающих) ) А извените, заметил, что С, а не С++, но там делать нужно тоже самое вообщемто Тоесть считываете как текст, проверяете насимволы, если все ОК, конвертируете в цисла. Это сообщение отредактировал(а) sQu1rr - 18.11.2008, 18:52 |
|||
|
||||
| SVN74 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 5.5.2008 Где: Комсомольск на Дн епре Репутация: 1 Всего: 18 |
|
|||
|
||||
| IKM2007 |
|
|||
![]() Зима близко ![]() ![]() Профиль Группа: Участник Сообщений: 702 Регистрация: 26.4.2008 Где: olmedreca Репутация: 3 Всего: 40 |
Вот написал функцию ввода.
-------------------- "К чёрту обстоятельства, я создаю возможности." Брюс Ли |
|||
|
||||
| taiven |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: 2 Всего: 9 |
Это сообщение отредактировал(а) taiven - 19.11.2008, 00:14 |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Есть такие замечательные функции: stdtol & strtod, у них есть 2й параметр - указатель на неразобранную часть строки. Если после вызова он указывает на не 0, то у вас число записано не правильно, а если на 0, то число правильное и то, что вернет strto? оно и есть. Как говорится - 2 в одном
|
|||
|
||||
| Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 11 Всего: 88 |
-------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |