错误:三元运算符在“ cout”对象中无法正常工作

时间:2020-05-29 12:04:05

标签: c++ conditional-operator

我正在制作一个C ++程序,该程序输入一个两位数的数字,然后使用打印屏幕方法按字母顺序读取该数字。 我面临的问题是三元运算符。当我在下面执行代码时,输​​入为11时输出为1,输入为12时输出为0。我只发布程序的一段。我是捷径。 我的代码段:

switch(tens_position_value)
{
   case 1:
   {
        if (unit_position_value == 1|| unit_position_value==2)
        {
            cout << (unit_position_value == 1) ? "Eleven" : "Twelve";
        }
   }
}

2 个答案:

答案 0 :(得分:2)

<<的{​​{3}}比?:高,因此将打印unit_position_value != 1(0或1)的结果而不是字符串。在此处添加括号:

cout << ((unit_position_value != 1) ? "Eleven" : "Twelve");

答案 1 :(得分:0)

我不确定您要获得什么,但是我假设如果tens_position_value = 1unit_position_value = 1,您想打印"Eleven",而如果unit_position_value = 2,您要打印"Twelve"

#include <iostream>
#include <string>

int main()
{
    int tens_position_value = 1;
    int unit_position_value = 1;
    switch(tens_position_value)
    {
        case 1:
        {
                if (unit_position_value == 1|| unit_position_value==2)
                {
                    std::string result = (unit_position_value == 1) ? "Eleven" : "Twelve";
                    std::cout << result << std::endl;
                }
        }
    }
    std::cout << "Bye ^_^\n";
}

在这种情况下,输出为"Eleven",如果将unit_position_value的值更改为2,则会得到"Twelve"