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

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

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

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

26.09.2013, 12:50. Просмотров 507. Ответов 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++
Программа отгадывает, загаданное пользователем число #include "stdafx.h" #include <locale> #include <iostream> #include...

как сделать защиту от дурака в этом коде? - C++
как сделать чтобы при вводе чисел больше 20 или букв писало о неправильно вводимых данных #include "stdafx.h" #include...

Как "русификацировать" функцию Scanf() - C++
Использую setlocale(LC_ALL, "rus"); Но, когда ввожу русские символы через scanf(), то всё равно она возвращает иероглифы. Как сделать,...

Как сделать "Старт", "Пауза", Стоп"? - C++
Доброго времени суток, как сделать так, чтобы при нажатии на кнопку начиналось цикличное действие (рисование например) и продолжалось бы...

"Защита от дурака" числа с плавающей запятой - C++
Какие есть способы для защиты от ввода чисел с плавающей точкой(запятой) ?

Как сделать execl("my", "arg", argv)? - C++
Пытаюсь сделать программу под linux. Нужен такой код, который бы запускал execl с двумя моими параметрами и всеми параметрами из argv кроме...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
_, не вариант потому, что задание такое
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2013, 14:36     Как с scanf сделать "защиту от дурака"?
Еще ссылки по теме:

Почему в scanf("%s",ss) имя ss пишется без амперсанда? - C++
почему в scanf("%s",ss) имя ss пишется без амперсанта?

Scanf "chSdSSdbQ" - что такое Q - C++
привет всем наткнулся на эту строку в коде UnrealTurnament 3 и возник вопрос что за Q??? Какое отношение имеет вопрос к С++?

"защита от дурака" - C++
Пытаюсь сделать "защиту от дурака"... т.е введенная переменная должна быть только int.. не float и не char. пытался использовать условие:...

"Защита от дурака" - C++
Здравствуйте! Недавно начал изучать Си и столкнулся с проблемой. Как можно с помощью цикла организовать корректность ввода числа? В Паскале...


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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт CАвтор FAQ
17534 / 5772 / 369
Регистрация: 30.03.2009
Сообщений: 15,880
Записей в блоге: 26
26.09.2013, 14:36     Как с scanf сделать "защиту от дурака"? #4
Со scanf - никак
http://www.cyberforum.ru/blogs/42536/blog278.html
Yandex
Объявления
26.09.2013, 14:36     Как с scanf сделать "защиту от дурака"?
Ответ Создать тему
Опции темы

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