2013-07-24 61 views
1

我想测试输入,如果它是double但我写信息弹出如果输入不是double永不停止显示。虽然当我把double转换成string时,一切都OK了。请帮忙。我无法弄清楚我必须做什么。虽然循环永不结束的消息

#include <iostream> 
#include <string> 
#include <cmath> 

using namespace std; 

int main(){ 
    double x; 
    cout<<"Enter Number.\n"; 
    while (!(cin>>x)){ 
     cout<<"please only numbers.\n"; 
     cin >>x; 

    } 
    return 0; 
} 
+0

如果输入操作失败,每个后续的操作失败,直到您重置标志。您可能也想放弃有问题的输入。 – chris

回答

1

您需要使用cin.ignore(1000, '\n');来清除输入。您还需要使用cin.clear();删除“失败”位,以便下一个输入可以成功。

+0

谢谢!一切都很好! – valkon