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

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

Войти
Регистрация
Восстановить пароль
 
Goga201
0 / 0 / 0
Регистрация: 04.02.2008
Сообщений: 10
#1

проверка на число - C++

29.03.2010, 17:18. Просмотров 963. Ответов 3
Метки нет (Все метки)

код
C++
1
2
3
4
5
6
7
8
9
10
        int index;
 
        ...
 
        while (1)
    {
    cin >> index;
    if (cin.good()) break;
    cout << "Неверный ввод! Вводите в числовом формате:"<<endl;
    }
сделал проверку, чтобы пользователь вводил числовой вариант, но если мы вводим буквы, то программа зацикливается сообщением, тоесть второй раз cin >> index; не вызывается.

Как быть?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2010, 17:18     проверка на число
Посмотрите здесь:

Проверка введенных данных: число/не число - C++
проходим try catch throw в универе. взял стаааааарую прогу и в нее вкладываю проверки введенных данных посредством try catch throw но у...

Проверка string на число - C++
Есть переменная типа string, необходимо проверить его на числа например строка 123 подходит по это условие. Гуглил - нашел regex, но...

Проверка на Hex число - C++
Не могу понять как сделать чтобы правильно проверяла строки на шестнадцатиричное число. Если строка только сост из Hex числа. то она...

Проверка на отрицательное число - C++
Есть код, который проверяет, действительно ли введен int bool log1 = true; while(log1) { cout &lt;&lt; &quot;Введите цифру = &quot;; ...

двузначное число, проверка - C++
Здравствуйте, выполнил проверку на чётные/не чётные числа, а как проверить на двузначность ? :-#include &lt;iostream&gt; using namespace std; ...

Проверка введено ли число - C++
Подскажите как сделать чтобы при нажатии кнопки проверялись поля Edit, если введено число(как целое, так и десятичное) происходили расчеты,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
29.03.2010, 17:31     проверка на число #2
у меня точно такая же проблема была , вот пример использования :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 while (true){
            CharToOem("Введите количество потребителей: ",message);
            std::cout<<message;
            std::cin>>count_consumer;
            if (!cin.good() || count_consumer<=0){
                count_supplier=0;
                cin.clear();
                cin.ignore(numeric_limits<streamsize>::max(),'\n');
                SetConsoleTextAttribute(con, FOREGROUND_RED | FOREGROUND_INTENSITY);
                CharToOem("Неверные данные!. ",message);
                std::cout<<message<<std::endl;
                SetConsoleTextAttribute(con, FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY);
            } else break;
        }
Добавлено через 36 секунд
тоесть надо после дописывать 2 строчки
C++
1
2
cin.clear();
 cin.ignore(numeric_limits<streamsize>::max(),'\n');
Goga201
0 / 0 / 0
Регистрация: 04.02.2008
Сообщений: 10
29.03.2010, 17:41  [ТС]     проверка на число #3
еще вариант нашел, вставить строчки
C++
1
2
cin.clear();
cin.ignore(cin.rdbuf()->in_avail());
но не очень понятно как вот это: cin.rdbuf()->in_avail() работает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2010, 18:02     проверка на число
Еще ссылки по теме:

Проверка на действительное число - C++
Собственно, задачу я уже в голове продумал. Но появился вопрос в ходе решения: можно ли как-то в конструкции if задать выражение, чтобы...

проверка на целое число - C++
Можно ли сделать проверку на ввод целого числа, если его тип сразу задается, как int? Просто это массив и другой тип данных не применим,...

Проверка на вещественное число - C++
Здравствуйте! Подскажите пожалуйста! Существует-ли проверка на вещественное число? Есть такой код - double smallest(double, double,...

Проверка на введенное число - C++
Здравствуйте. Как проверить что было введено число а не что то другое. Например я написал подпрограмму, которая проверяет что было введено...

Проверка строки на число - C++
Здравствуйте. Почему когда я ввожу буквы вместо числа, то цикл не выполняется и выводится b? Собственно нужно осуществить ввод числа, но...

Проверка, является ли число четным - C++
ребята подскажите , как написать програму которая проверяет введенное с клавиатуры число на очетность=четное-нечетное в с++


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

Или воспользуйтесь поиском по форуму:
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
29.03.2010, 18:02     проверка на число #4
cin.rdbuf() - возвращает указатель на буфер потока cin
streamsize in_avail( );

Returns the number of elements that are ready to be read from the buffer.
Возвращает число элементов, готовых быть прочтенными из буфера (в данном случае из буфера потока cin)

basic_istream<Elem, Tr>& ignore(
streamsize _Count = 1,
int_type _Delim = traits_type::eof( )
);

Causes a number of elements to be skipped from the current read position.
Пропускает число элементов, начиная с текущей позиции.
Yandex
Объявления
29.03.2010, 18:02     проверка на число
Ответ Создать тему
Опции темы

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