我無法比較char變量的用戶輸入。我想檢查他們是否回答Y或N的問題。如果他們沒有輸入Y或N,我想給用戶一個錯誤信息並開始循環。(C++)如何驗證char變量的用戶輸入?
下面是我創建的測試代碼,作爲我打算使用它的程序的模板。無論用戶給出什麼輸入,程序都會循環。另外,如果用戶輸入'n'個字符,他們將會收到'n''失敗!'消息以及每次初始cout消息。如果他們輸入Y,它也會發生,除非它說「成功!」。
我在網上看了一下,但還沒有找到任何人解決這個問題。爲什麼==對等效性檢查工作,而不是!=對於字符(和字符串以及這個問題)?
#include<iostream>
using namespace std;
int main()
{
char answer;
do{
cout <<"\nPlease type Y or N." << endl;
cin >> answer;
if ((answer == 'Y') || (answer == 'N'))
{
cout << "\nSuccess!" << endl;
}
else
{
cout << "\nFailure!" << endl;
}
}while ((answer != 'Y') || (answer != 'N'));
return 0;
}
而且你也得到了你的邏輯倒退。它應該是'while(answer!='Y'&& answer!='N');' – ApproachingDarknessFish
不是。你可以使用'!(answer =='Y'|| answer =='N')'或'answer!='Y'&& answer!='N'':應用Boole的邏輯! –
當然,這就是我想寫的,複製粘貼沒有幫助我猜測 –