Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 11
1

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

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

Есть такой код где данные вводятся целого типа( int x; cin >> x; ). Вопрос такой как проверить действительно ли введено число либо нет ?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2013, 22:53
Ответы с готовыми решениями:

Проверка вводимых данных
Как сделать так, чтобы при вводе символов в строку года поступления на экран появлялось...

Проверка вводимых данных
Подскажите, пожалуйста, как зациклить ввод данных до тех пор пока пользователь не введёт корректный...

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

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

2
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
27.04.2013, 23:19 2
Лучший ответ Сообщение было отмечено mGimka как решение

Решение

проверяй состояния. 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;
}
2
Грамотный. Безпорно.
16619 / 9658 / 1863
Регистрация: 27.09.2012
Сообщений: 23,959
Записей в блоге: 2
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);
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2013, 23:27

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Проверка вводимых данных
#include &lt;iostream&gt; using namespace std; int main() { double a, b, c; cout &lt;&lt;...

Проверка корректности вводимых данных
Здравствуйте, подскажите,пожалуйста, как прописать условия проверки. Мне нужно: если вводится...

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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