C++ 三元运算符中的Cout字符串和int
我的C++ 三元运算符中的Cout字符串和int,c++,string,int,C++,String,Int,我的c++代码中有一行内容如下: cout<<(i%3==0 ? "Hello\n" : i) ;//where `i` is an integer. 如何修改代码(最少字符)? i%3==0 ? cout<< "Hello\n" : cout<<i; i%3==0?cout如果两个选项的类型不兼容,则不能使用条件运算符。最清楚的事情是在以下情况下使用: if (i%3 == 0) cout << "Hello\n"; else
c++
代码中有一行内容如下:
cout<<(i%3==0 ? "Hello\n" : i) ;//where `i` is an integer.
如何修改代码(最少字符)?
i%3==0 ? cout<< "Hello\n" : cout<<i;
i%3==0?cout如果两个选项的类型不兼容,则不能使用条件运算符。最清楚的事情是在以下情况下使用:
if (i%3 == 0)
cout << "Hello\n";
else
cout << i;
if(i%3==0)
cout运算符std::cout使用标准的if else
语句有什么问题?您的“更精确”一点也不精确--将第二个操作数的类型转换为第三个操作数的类型是完全合法的。(“left”和“right”对于三元运算符不是很有用)@BenVoigt-hm,我一直认为第三个必须转换为第二个。确定第二个操作数是否可以转换为与第三个操作数匹配,以及第三个操作数是否可以转换为与第二个操作数匹配。如果两者都可以转换,或者其中一个可以转换但转换不明确,则程序的格式不正确。如果两者都不能转换,则操作数保持不变,并按如下所述执行进一步检查。如果只可能进行一次转换,则该转换将应用于所选的操作数,并在本节的其余部分使用转换后的操作数代替原始操作数。“5.16p3Yup,您是对的。但这就是原因吗?i%3==0吗?”您好\n“:我代码>非法吗?@Luchian:这是非法的,但我要进一步指出的是,他不想要合法的变体,他确实需要在两个分支中调用两个不同的函数。
if ( i%3 == 0 )
cout << "Hello\n";
else
cout << i;
if (i%3 == 0)
cout << "Hello\n";
else
cout << i;
cout << (i%3 == 0 ? "Hello\n" : std::to_string(i));
if (i%3 == 0) cout << "Hello\n"; else cout << i;
if (i%3) cout << i; else cout << "Hello\n";
(i%3)?(cout<<i):(cout<<"Hello\n");
std::cout << i % 3 == 0 ? "Hello" : std::to_string(i);