为什么cin不识别加号/减号?

时间:2014-01-18 23:37:51

标签: c++

char sign = '+';
cout << "Enter '+' for addition or '-' for subtraction: ";
        cin >> sign;
        if ( sign != '+' || sign != '-' ) {
            cout << "you can only enter '+' or '-'!\n";
            return 1;
        }

当我输入“+”或“ - ”符号时,将显示错误消息。

2 个答案:

答案 0 :(得分:7)

你的真相表中有错误。考虑值'+'。它不等于'-'因此打印错误。值'-'不等于'+',因此再次出现错误。

您需要使用&&代替||

if ( sign != '+' && sign != '-' ) {
  ...
}

答案 1 :(得分:6)

确实如此。您的代码存在问题:

    if ( sign != '+' || sign != '-' )

如果sign == '+',则第一个条件为false,但第二个条件为true。显然false || true评估为true

我认为您的意思是使用sign != '+' && sign != '-'