![](/img/trans.png)
[英]Why is the input stream not recognizing Ctrl D and gives an infinite loop instead?
[英]While Loop Not Recognizing Input
我不知道该怎么办。 因此,我有一个简单的while循环,意在允许用户在意外输入错误的情况下重新输入数字。 问题是,如果您输入“ 2”,它将再次循环返回。 我无法,一生都想知道。
void Player::playerPick()
{
int selection = 0;
while (selection != (1 || 2))
{
cout << "Player 1 or Player 2 (Type [1] or [2])";
cin >> selection;
}
}
你写了:
while (selection != (1 || 2))
这是“选择不是一两个时”。
实际正确的英语是“而选择既不是一,也不是两个”,在C ++中也是如此:
while (!(selection == 1 || selection == 2))
或者,更简单地说,“选择不是一个,选择不是两个”:
while (selection != 1 && selection != 2)
表达式1 || 2
1 || 2
计算结果为true
,所以你写的while (selection != true)
这是任何非零值的情况下selection
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.