2013-04-19 2 views
0

Я смотрел повсюду, но я не могу найти и реализовать проверку ввода, которая принимает только целые числа, у меня есть код, который работает отлично, но моя единственная проблема в том, что, поскольку ive добавил мой код проверки , он требует, чтобы пользователь вводил два раза, прежде чем он принял второй вход, все, что я хочу, - это просто, чтобы пользователь мог вводить только один раз с хорошей проверкой, чтобы программа распознала его не int и отобразила соответствующее сообщение, id будет очень благодарна любой помощи!Проверка числовых данных в C++

Вот мой код:

cout<<"Please enter your first value: \n"; 
cin>>a; 

//Error checker to check if input is a number 
while(!(cin >> a)) 
{  
    cin.clear(); 
    std::cin.ignore(numeric_limits<streamsize>::max(), '\n'); 
    cout << "Invalid input. Please Try again: "<<endl; 
} 
+3

Пропустить первый вход, то есть единственную строку 'cin >> a'? –

ответ

1

Вы пытаетесь сделать cin>>a один раз перед циклом while, а затем снова в состоянии в то время цикла. Просто удалите первоначальное извлечение.

cout<<"Please enter your first value: \n"; 
// cin>>a; <- remove this 

//Error checker to check if input is a number 
while(!(cin >> a)) 
+0

Большое спасибо! что сработало очарование! : D – Huzzah

Смежные вопросы