部分要求是函数不应该带任何参数。 但问题是我在哪里可以存储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;
}
}
答案 0 :(得分: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()
。