1

我想测试输入是否是,但如果输入不是永远不会停止显示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;
}
4

1 回答 1

1

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

于 2013-07-24T22:35:37.327 回答