Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to validate numeric input in C++

Tags:

c++

visual-c++

I'd like to know how to limit an input value to signed decimals using std::cin.

like image 651
Raúl Roa Avatar asked Feb 05 '09 03:02

Raúl Roa


1 Answers

double i;

//Reading the value
cin >> i;

//Numeric input validation
if(!cin.eof())
{
    peeked = cin.peek();
    if(peeked == 10 && cin.good())
    {
             //Good!
             count << "i is a decimal";
        }
        else
        {
             count << "i is not a decimal";
         cin.clear();
         cin >> discard;
        }
}

This also gives an error message with the input -1a2.0 avoiding the assignation of just -1 to i.

like image 92
Raúl Roa Avatar answered Sep 22 '22 05:09

Raúl Roa