char type;
std::cout << "Enter Type(s or c only)";
std::cin >> type;
if (type != 's' || 'c')
{
std::cout << "NOT VALID";
}
如果用户输入s
或c
以外的任何字符,我希望此代码显示“无效”,但是即使s
或{{ 1}}。
为什么会这样?
答案 0 :(得分:1)
代替这个
if(type!='s'||'c')
您需要这样做
if((type!='s') && (type!='c'))
为什么会发生这种情况,请回答。
type!='s'||'c'
是(type!='s')||'c'
,并且始终为true
。您需要进行两次检查(先对's'
进行检查,然后再对'c'
进行检查),因此还需要进行两次比较,即您尝试过的类似化合物的构造无法正常工作。