0

部分要求是函数不应接受任何参数。但问题是我在哪里可以存储 cin 输入?我这里有一个无限循环。

double getValidDouble(){
    string invalid_input;
    while (cin.fail()){
        cout << "You entered a value of the wrong type!" << endl;
        getline(cin,invalid_input);
        cout << "Enter a double this time: " << endl;  
    }
}
4

1 回答 1

0

也许我没有完全遵循,但为什么不声明一个局部变量并返回它呢?

double getValidDouble(){
    string invalid_input;
    double val;
    cin >> val;
    while (cin.fail()){
        cout << "You entered a value of the wrong type!" << endl;
        cin.clear();
        getline(cin,invalid_input);
        cout << "Enter a double this time: " << endl;  
        cin >> val;
    }
    return val;
}

无限循环可能是因为你cin.clear()在错误之后没有做。

于 2013-05-04T20:36:10.220 回答