[英]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.