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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Итераторы и итерация. Оператор >>. Простой текстовый редактор Страуструпа http://www.cyberforum.ru/cpp-beginners/thread962759.html
Добрый день! Есть код Страуструпа из Принципы и практика использования С++ Глава 20, параграф 6. Код описывает простой текстовой редактор. Строка символов заканчивающаяся '\n' хранятся в std::vector<char>, строки хранятся в std::list - и всё это класс Document. Для того чтобы иметь возможно следовать по символам от первого до последнего не беспокоясь о разделении на строки разработан итератор...
C++ Друзья, подскажите, можно ли дружественную функцию сделать виртуальной? Допустим есть какой-то базовый класс в котором объявлена дружественная функция, а определена она в глобальной области. Можно ли эту дружественную функцию сделать виртуальной, и скажем из производного класса запустить ее. Приведите пожалуйста код, как это делается! Заранее спасибо! http://www.cyberforum.ru/cpp-beginners/thread962752.html
C++ Целочисленная арифметика
Нужно переставить старшую и младшую цифры в записи натурального числа. Не могу понять как это сделать
C++ Указатель и амперсанд
Всем здрасьте. У меня тут возник вопрос. Приведу простой примерчик двух функций(не смотрите на ошибки если есть , дело не в них) void Calculate(int*,int*); void main() { int one = 1; int two = 2;
C++ Преобразование кода для Visual C++ http://www.cyberforum.ru/cpp-beginners/thread962716.html
Дана задача:В текстовом файле хранится база отдела кадров предприятия. На предприятии 100 сотрудников. Каждая строка файла содержит запись об одном сотруднике. Формат записи: фамилия и инициалы (30 позиций, фамилия должна начинаться с первой позиции), год рождения (5 позиций), оклад (10 позиций). Написать программу, которая по заданной фамилии выводит на экран сведения о сотруднике,...
C++ Проблеммка с конструктором копирования В общем суть: /*Создать класс - одномерный массив целых чисел (вектор). Функции-члены обращаются к отдельному элементу массива, вывода массива на экран, поэлементного сложения и вычитания со скаляром, вывод элемента по заданному индексу.*/ #pragma once class Vector { int size; int **arr; public: подробнее

Показать сообщение отдельно
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
26.09.2013, 12:50     Как с scanf сделать "защиту от дурака"?
Нужно, чтобы пользователь ввел две целочисленные переменные. Как делал я:
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 сделать"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru