如何检查输入的值是否为数字?

时间:2014-01-08 21:40:41

标签: c++ cin

#include<iostream>
using namespace std;
int main()
{
    double money;
    cout << "Input the sum of money: ";
    cin >> money;
....

我一直在尝试检查输入的值是否为数值,以便在输入其他值(字母)时显示错误消息,代码将循环返回以再次询问输入(钱)

2 个答案:

答案 0 :(得分:2)

while ( ( cin >> money ) == false )
{
...
}

答案 1 :(得分:2)

您可以在输入后检查流的状态。例如

if ( !( std::cin >> money ) ) std::cout << "Oh, I made a mistake!\n";

如果您想重复输入,请致电

std::cin.clear();
std::cin.ignore( std::numeric_limits<std::streamsize>::max(), '\n' );

不要忘记添加标题<limits>