How would I go about checking to see if a cin >> input is a number/float? I'm making a really basic calculator, which works fine, unless you put in letters or symbols. Then you get some really funky results. LOL

Here's what I have so far:

Code:

#include <iostream>
#include <string>
using namespace std;
int main ()
{
string action;
float f_n;
float s_n;
cout << "\n\n What do you want to do? (Possible answers: multiply, add, subtract, divide) \n";
cin >> action;
if (action != "add" && action != "subtract" && action != "multiply" && action != "divide")
{
cout << "Unknown action command.";
return 1;
}
cout << "\n\n First Number \n";
cin >> f_n;
// Somehow check to see if "f_n" is an int/float....
cout << "\n\n Second Number \n";
cin >> s_n;
// Somehow check to see if "s_n" is an int/float....
if (action == "add")
{
cout << "Your answer is >> " << f_n + s_n << " \n\n";
}
else if (action == "subtract")
{
cout << "Your answer is >> " << f_n - s_n << " \n\n";
}
else if (action == "multiply")
{
cout << "Your answer is >> " << f_n * s_n << " \n\n";
}
else if (action == "divide")
{
cout << "\n\n Your answer is >> " << f_n / s_n << " \n\n";
}
else
{
cout << "\n\n unknown operation" << " \n\n";
return 1;
}
return 0;
}