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

ввод чисел - C++

Восстановить пароль Регистрация
 
Mr. Pyatachok
 Аватар для Mr. Pyatachok
8 / 8 / 0
Регистрация: 30.06.2011
Сообщений: 250
24.01.2012, 20:26     ввод чисел #1
Здраствуйте, граждане!
Есть вопросик:
Даны 2 числа: int a, float b.
Если нетяжело, то покажите мне, идиоту, функцию чтобы можно было проверить что вводятся только числа, а не числа с символами (что привидет к зацикливанию).
Буду весьма рад, если продемонстрируете код как-нибудь попроще и с пояснением.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2012, 20:26     ввод чисел
Посмотрите здесь:

Ограничения на ввод чисел C++
C++ Ввод чисел
C++ Ввод чисел
Ввод чисел в массив C++
C++ Ввод чисел в массив
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
24.01.2012, 20:30     ввод чисел #2
Насколько сложная должна быть проверка? Если просто, чтобы не вылетала программа, при вводе не числа, то вот
C
1
2
3
4
5
6
do
{
   k = scanf("%d", &a);
   fl(); // Ваша функция для очистки буфера клавиатуры
}
while ( !k );
Mr. Pyatachok
 Аватар для Mr. Pyatachok
8 / 8 / 0
Регистрация: 30.06.2011
Сообщений: 250
24.01.2012, 20:40  [ТС]     ввод чисел #3
напр.
cin>>first;
функция проверки
cin>>second;
функция проверки

а вообще, как хотите, просто хочу разобраться как вообще такое возможно
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
24.01.2012, 21:03     ввод чисел #4
Mr. Pyatachok,
C++
1
2
3
4
5
6
7
8
9
10
std::string s;
int a;
bool fl;
do 
{
   std::cin >> s; // Читайте в строку
   fl = MyFun(s, a); // Ваша функция проверки
   fl(); // Чистим буфер
}
while ( !fl );
Добавлено через 19 минут
Mr. Pyatachok, в С++ можно стандартными средствами почистить буфер
Mr. Pyatachok
 Аватар для Mr. Pyatachok
8 / 8 / 0
Регистрация: 30.06.2011
Сообщений: 250
24.01.2012, 21:52  [ТС]     ввод чисел #5
Хорошо, а вот как тогда написать функцию проверки целого числа и вещественного?
Заранее буду благодарен
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
24.01.2012, 21:56     ввод чисел #6
Mr. Pyatachok, обычная проверка, содержаться ли в строки не циферные символы. Сможете сами?

Добавлено через 31 секунду
Цитата Сообщение от Mr. Pyatachok Посмотреть сообщение
и вещественного?
Ну с вещественными чуть сложнее, там точка и т.д.

Добавлено через 58 секунд
Просто не раз уже делали такие проверки, можешь поиском воспользоваться.
Mr. Pyatachok
 Аватар для Mr. Pyatachok
8 / 8 / 0
Регистрация: 30.06.2011
Сообщений: 250
24.01.2012, 21:56  [ТС]     ввод чисел #7
честно говоря нет
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
24.01.2012, 22:18     ввод чисел #8
Цитата Сообщение от go Посмотреть сообщение
Насколько сложная должна быть проверка? Если просто, чтобы не вылетала программа, при вводе не числа, то вот
C
1
2
3
4
5
6
do
{
   k = scanf("%d", &a);
   fl(); // Ваша функция для очистки буфера клавиатуры
}
while ( !k );
На корню неправильный подход: во-первых функция scanf() может возвращать значение меньше нуля, а во-вторых получается, что независимо от того, что вернёт scanf(), функция f() всё равно будет вызвана.
http://www.freebsd.org/cgi/man.cgi?q...lt&format=html
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
24.01.2012, 22:26     ввод чисел #9
easybudda, я бы не стал так говорить, единственное, что упустил

C
1
while ( k != 1 );
Добавлено через 10 секунд
Цитата Сообщение от easybudda Посмотреть сообщение
функция f() всё равно будет вызвана.
А что это за функция?
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
24.01.2012, 22:36     ввод чисел #10
Цитата Сообщение от go Посмотреть сообщение
А что это за функция?
Это я вместо fl её так обозвал, но это у Вас правильно, она и должна в любом случае выполняться, а вот с возвращаемыми значениями функций всё-таки поаккуратнее надо - сам на эти грабли наступал...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2012, 22:54     ввод чисел
Еще ссылки по теме:

C++ Ввод чисел
C++ Запросить ввод нескольких чисел, и определить, сколько из этих чисел отрицательны
C++ Ограничение на ввод чисел и проверка чисел

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

Или воспользуйтесь поиском по форуму:
Mr. Pyatachok
 Аватар для Mr. Pyatachok
8 / 8 / 0
Регистрация: 30.06.2011
Сообщений: 250
24.01.2012, 22:54  [ТС]     ввод чисел #11
а можно еще подробнее пожалуйста
Yandex
Объявления
24.01.2012, 22:54     ввод чисел
Ответ Создать тему
Опции темы

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