Removing letter from number problem
Hello. I'm learning C++ for personal use, and I'm having some trouble.
Code:
//Here are includes, the prototype, and using namespace std;
int main()
{
int testnumber = 0;
cout<<"Hi! This is the Even or Odd program! Please type a number to determine if it's odd or even!"
<<"\nIf you want to exit, please hit 0!\n";
while(!(cin >> testnumber))
{
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout<<"That is not a number! Please get rid of any decimals, and write a number!\n"
<<"If you want to exit the program, please hit 0!\n";
}
EvenOdd(testnumber);
cout<<"Thank you for using this program! Hit enter to exit.";
cin.get();
return 0;
}
int EvenOdd(int numero)
{
if(numero == 0)
{
return 0;
}
if(numero % 2 == 0)
{
cout<<numero <<" is an even number!\nPlease enter another number! "
<<"If you want to exit, please hit zero!\n";
}
else
{
cout<<numero <<" is an odd number!\nPlease enter another number!\n"
<<"If you want to exit, please hit zero!\n";
}
while(!(cin >> numero))
{
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout<<"That is not a number! Please get rid of any decimals, write a new number, and hit enter!\n"
<<"If you want to exit the program, please hit 0!\n";
}
return EvenOdd(numero);
}
As you can see, the program rejects the input if it is a letter. However, if I were to type "9s", the check would pass the value of 9 to EvenOdd. I would rather let the user determine if they should change the number. Thank you!
-ilikepie2221