Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 三元运算符中的Cout字符串和int_C++_String_Int - Fatal编程技术网

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);