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

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

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

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

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

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

Проверка типа вводимых данных. C++
Проверка вводимых данных. C++
C++ Проверка вводимых значений
C++ Проверка вводимых символов
C++ Проверка вводимых символов
Портирование кода на С++ (проверка вводимых данных пользователем на корректность) C++
Посимвольная проверка вводимых данных C++
C++ Проверка вводимых значений
Проверка вводимых данных C++
C++ Проверка корректности вводимых данных
C++ Проверка вводимых данных
C++ Проверка вводимых данных на соответствие типа

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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Эксперт С++
 Аватар для Croessmah
12501 / 7063 / 793
Регистрация: 27.09.2012
Сообщений: 17,447
Записей в блоге: 2
Завершенные тесты: 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);
}
Yandex
Объявления
27.04.2013, 23:27     Проверка на коректность вводимых данных
Ответ Создать тему
Опции темы

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