而循环永不结束的消息

时间:2013-07-24 22:22:45

标签: c++ while-loop

如果是double,我想测试输入,但是如果输入不是double,我写的要弹出的消息永远不会停止显示。虽然当我把双重变成字符串时,一切都还可以。请帮忙。我无法弄清楚我必须做什么。

#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;
}

1 个答案:

答案 0 :(得分:1)

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