【发布时间】:2014-04-23 03:42:21
【问题描述】:
我正在尝试制作一个用户只能输入 0 到 1 的 cin。如果用户没有输入这些数字,那么他应该会收到一条错误消息“请在 0 到 1 的范围内输入。”
但它不起作用。
我做错了什么?
int alphaval = -1;
do
{
std::cout << "Enter Alpha between [0, 1]: ";
while (!(std::cin >> alphaval)) // while the input is invalid
{
std::cin.clear(); // clear the fail bit
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // ignore the invalid entry
std::cout << "Invalid Entry! Please Enter a valid value: ";
}
}
while (0 > alphaval || 1 < alphaval);
Alpha = alphaval;
【问题讨论】:
-
什么'不起作用'?
-
“0 到 1”,或“0 或 1”
-
0 或 1 如果我不输入,它不会问我错误
-
您需要更具体地了解问题所在。该代码似乎对我来说很好用。由于字符串“请在 0 到 1 的范围内输入”。没有出现在您发布的代码中,没有打印出来也就不足为奇了。
-
@jrd1 是的,就是这样!我无法让它正常工作
标签: c++ validation stdin