0

I have a simple little script I am coding, and I am trying to not allow people to enter a string, or if they do make it revert to the beginning of the function again. Here's the input code I have:

int main()
{
    cout << "Input your first number" << endl;
    cin >> a;
    cout << "Input your second number" << endl;
    cin >> b;
}

The rest of the code beyond this part works just fine for what's going on, although if a string is entered here it obviously doesn't work.

Any help would be appreciated.

Nick Mudry
  • 3
  • 1
  • 1
  • 2

3 Answers3

1

You may find this post useful,

How to check if input is numeric in C++

Basically you can check the input, whether it is numeric value or not. After checking whether the given input is numbers, then you can add a while loop in main to ask user to repeat if input is not a valid number.

Community
  • 1
  • 1
taocp
  • 23,276
  • 10
  • 49
  • 62
0

Every input is a string. If you want to know if a entered string can convert to a number, you have to read in a string and try to convert it yourself (eg with strol).

An alternative would be to check if the reading from cin failed, but personally i don't like it because cin.fail() covers more error situations than just a failed type conversion.

fscan
  • 433
  • 2
  • 9
0

There's a library function may help,you can check it after input:

int isdigit(char c);

Tips: 1.You should include such files :

# include <ctype.h>

2.If c in 0 ~ 9 ,return 1 ; else return 0.