好吧,所以我在为正在创建的编程编写一个简单的界面,遇到了这个问题,无论如何它都会给我相同的响应。
#include <iostream>
using namespace std;
int main()
{
char v;
cout << "Binary or ASCII? "<<endl;
cin >> v;
if (v == 'B' || 'b')
{
cout << "Binary " << endl;
}
else if (v == 'A' || 'a')
{
cout << "ASCII " << endl;
}
else
{
cout << "ERROR: Invalid Option" << endl;
}
return 0;
}
该接口应该输出
Binary
如果我输入B或b
ASCII
如果我输入A或a
和
ERROR: Invalid Option
其他所有内容
相反,我明白了
Binary
不管我输入什么
我的错误在哪里?我在做什么错了?
答案 0 :(得分:1)
让我们看看如果您发生以下情况:
if (v == 'B' || 'b')
首先,它检查是否为v == 'B'
。让我们假设不是为了进行本演练。然后它将检查(false || 'b')
。由于'b'
的计算结果始终为true,所以这将为true!
您可能想要:
if (v == 'B' || v == 'b')