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

Написать защиту от ввода чисел с плавающей точкой, отрицательных чисел и символов - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
Mishaka
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 32
09.10.2012, 00:41     Написать защиту от ввода чисел с плавающей точкой, отрицательных чисел и символов #1
Привет всем! Вот пишу программу, преподаватель сказал чтобы написал защиту от ввода чисел с плавающей точкой, отрицательных, символов. В общем нужны по условию задачи только натуральные числа. Как это осуществить? Вот моя защита от отр. чисел:
C++
1
2
3
4
5
6
 cin >> a; 
    while (1)
    {
       if (a>0) {cout <<"vvedite granicy b\n";break;}
       else {cout << "Ne naturalnoe chislo\n" << "Povtorite vvod\n"; cin >> a;}
    }
Добавлено через 1 минуту
Хорошо бы прямо в это условие вставить нужное выражение, только вот какое?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2012, 00:41     Написать защиту от ввода чисел с плавающей точкой, отрицательных чисел и символов
Посмотрите здесь:

C++ Определите одномерный массив из 10 чисел с плавающей точкой
Форматирование чисел с плавающей точкой C++
Создать двумерный массив чисел с плавающей точкой и вывести на экран все числа по диагонали с лева на право C++
калькулятор чисел с плавающей точкой C++
C++ Сравнение чисел с плавающей точкой
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2012, 21:38     Написать защиту от ввода чисел с плавающей точкой, отрицательных чисел и символов
Еще ссылки по теме:

C++ Считывание из файла чисел с плавающей точкой
C++ Проблема сравнения чисел с плавающей точкой

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

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.10.2012, 21:38     Написать защиту от ввода чисел с плавающей точкой, отрицательных чисел и символов #21
Цитата Сообщение от Mishaka Посмотреть сообщение
если есть возможность объяснить как работает каждая функция буду признателен!
Работает всё так. cin >> ожидает ввод числа, т.е. первым символом для ввода должна быть цифра. Вы набираете, например, asd345 и жмете Enter. Встретив вместо ожидаемой цифры букву (а), cin устанавливает для потока ввода флаг ошибки (для if() cin теперь будет false) и ввод с консоли становится невозможен. В переменную, куда читает cin, ничего не заносится, а то что не ввелось (в данном случае: asd345) остаётся в очереди ввода. Для того, чтобы поток ввода заработал снова, нужно сбросить флаг ошибки. Это делает cin.clear(). Потом нужно очистить очередь ввода, иначе первым символом для cin >> опять будет буква (а) и всё повторится. Очистку делает эта конструкция:
C++
1
while (cin.get() != '\n');
При каждой итерации цикла, cin.get() будет извлекать из потока ввода по одному символу пока не извлечёт символ новой строки '\n' (последний символ из предыдущего ввода - попадает в поток при нажатии Enter), извлечёт и его, и будет выход из цикла. После этого поток для ввода будет чист и готов для дальнейшей работы.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Yandex
Объявления
09.10.2012, 21:38     Написать защиту от ввода чисел с плавающей точкой, отрицательных чисел и символов
Ответ Создать тему
Опции темы

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