【发布时间】:2014-02-25 21:46:14
【问题描述】:
我在比较 char 变量的用户输入时遇到问题。我想检查他们对某个问题的回答是 Y 还是 N。如果他们没有输入 Y 或 N,我想给用户一条错误消息并重新开始循环。
下面是我创建的测试代码,作为我打算使用它的程序的模板。 无论用户给出什么输入,程序都会循环。此外,如果用户输入“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;
}
【问题讨论】:
标签: c++ validation input