Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
#1

Как с scanf сделать "защиту от дурака"? - C++

26.09.2013, 12:50. Просмотров 487. Ответов 3
Метки нет (Все метки)

Нужно, чтобы пользователь ввел две целочисленные переменные. Как делал я:
C++
1
2
3
4
5
6
7
8
bool ReadInteger(int &var)
{
if (scanf("%d", &var) != 1)
{
return false;
}
return true;
}
Всё бы ничего, но если пользователь вводит, например, дробное число "10.3", то в первую переменную записывается 10, а второй ввод даже не требуется, ведь в буфере уже есть "." для обработки и вывод в консоли выглядит примерно так:
"
Enter first integer:
10.3
Enter second integer:
ReadInteger returned false. Aborted.
"
А нужно, чтобы уже при первом варианте он выдал ошибку.
Считывать вход в строку и парсить её - не вариант. Как сказано в шапке темы - "как с scanf сделать"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2013, 12:50     Как с scanf сделать "защиту от дурака"?
Посмотрите здесь:

C++ Почему в scanf("%s",ss) имя ss пишется без амперсанда?
Как сделать константными значения "m" и "n" C++
Программа отгадывает загаданное пользователем число: реализовать "защиту от дурака" C++
C++ Как сделать "Старт", "Пауза", Стоп"?
Как сделать поле с "|", #, "-" и цифрами C++
C++ "Защита от дурака" числа с плавающей запятой
Scanf "chSdSSdbQ" - что такое Q C++
C++ Как сделать execl("my", "arg", argv)?
Как "русификацировать" функцию Scanf() C++
C++ Как сделать так, чтобы scanf в переменную double мог считывать с клавиатуры не только "0,01", но и "0.01"
Как сделать так, чтобы введенное с клавиатуры слово "helllo" в памяти сохранялось в виде "Hello". C++
C++ как сделать защиту от дурака в этом коде?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
26.09.2013, 13:01     Как с scanf сделать "защиту от дурака"? #2
Цитата Сообщение от nexen Посмотреть сообщение
Считывать вход в строку и парсить её - не вариант.
почему не вариант? мне вот кажется что это как раз таки вариант. сначала записал в строку, потом проверил и если все хорошо, то присвоил это значение переменной var
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
26.09.2013, 13:13  [ТС]     Как с scanf сделать "защиту от дурака"? #3
_, не вариант потому, что задание такое
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
17184 / 5438 / 337
Регистрация: 30.03.2009
Сообщений: 14,742
Записей в блоге: 26
26.09.2013, 14:36     Как с scanf сделать "защиту от дурака"? #4
Со scanf - никак
http://www.cyberforum.ru/blogs/42536/blog278.html
Yandex
Объявления
26.09.2013, 14:36     Как с scanf сделать "защиту от дурака"?
Ответ Создать тему
Опции темы

Текущее время: 06:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru