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

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

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

Проверка на коректность вводимых данных - C++

27.04.2013, 22:53. Просмотров 772. Ответов 2
Метки нет (Все метки)

Есть такой код где данные вводятся целого типа( int x; cin >> x; ). Вопрос такой как проверить действительно ли введено число либо нет ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2013, 22:53     Проверка на коректность вводимых данных
Посмотрите здесь:

Проверка вводимых данных - C++
#include <iostream> using namespace std; int main() { double a, b, c; cout << "Enter the first side of the...

Проверка вводимых данных - C++
Вот часть программы int main(void) { int vop; setlocale(LC_ALL, "Russian"); int mas1, mas2, mas3, outmas; int ke1, ke2,...

Проверка вводимых данных - C++
Доброго времени суток, форумчане. Я столкнулся с такой проблемой: при введении еденицы измерения, если та инициализирована ранее то все...

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

Проверка типа вводимых данных. - C++
Собственно,как осуществить ? К примеру,здесь: int main() { int x; int y; cin >> x;

Посимвольная проверка вводимых данных - C++
Доброго времени суток. Такая проблема: нужно запретить пользователю вводить не цифры и дробные числа через запятую. т.е. 4213 -...

Проверка вводимых данных на соответствие типа - C++
Задание само очень простое - вычитание матриц, с помощью перегрузки функций (одна функция вычитает типы short, другая long double). ...

Портирование кода на С++ (проверка вводимых данных пользователем на корректность) - C++
Требуется портировать код с С# на С++. Код на шарпе - очень простой. В нем не используются языковые особенности шарпа, перевести, я думаю,...

Проверка вводимых значений - C++
есть динам. массив, который вручную заполняется for (int i=0;i<n;i++) { cout<<"Введите "<<i+1<<" значение Urab (5...60 B) :...

Проверка вводимых значений - C++
Стоит задача не допустить ввода значений помимо чисел(0..9), точки(".") и "+" или "-". При условии, что используется данная функция: ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
27.04.2013, 23:19     Проверка на коректность вводимых данных #2
проверяй состояния. cin.fail(), cin.good().

например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int main()
{
    int n;
 
    for (int i = 0; i < 10; ++i)
    {
        std::cout << "Enter: ";
        std::cin >> n;
 
        if (std::cin.fail()) {
            std::cerr << "NOT INT! \n\n";
            std::cin.clear(); std::cin.sync();
            continue;
        }
        else
            std::cout << "OK! \n\n";
    }
 
    return 0;
}
Croessmah
Модератор
Эксперт CЭксперт С++
13063 / 7326 / 817
Регистрация: 27.09.2012
Сообщений: 18,085
Записей в блоге: 3
Завершенные тесты: 1
27.04.2013, 23:27     Проверка на коректность вводимых данных #3
еще вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
int InputSize(const int min,const int max){
    int x;
    std::cout<<"Please, enter size ["<<min<<","<<max<<"] ->";
    bool ErrorFlag;
    do{
        std::cin.clear();
        std::cin.ignore(std::cin.rdbuf()->in_avail());
        std::cin>>x;
        ErrorFlag=!std::cin.good() || x>max || x<min;
        if(ErrorFlag){
            std::cout<<"Error. Enter size ["<<min<<","<<max<<"] ->"<<std::endl;
        }
    }while(ErrorFlag);
    std::cin.ignore(std::cin.rdbuf()->in_avail());
    return x;
}
int main(){
    InputSize(1,9);
}
Ответ Создать тему
Опции темы

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