C++, ternary operator, std::cout
How to write the following condi开发者_Go百科tion with a ternary operator using C++
int condition1, condition2, condition3;
int / double result; //int or double
....
std::cout << ( condition1: result1 : "Error" )
<< ( condition2: result2 : "Error" )
<< ( condition3: result3 : "Error")...;
Depends on what type is result1, result2
etc.
expressionC ? expression1 : expression2
isn't valid for all types of expression1
and expression2
. They must necessarily be convertible to a common type, roughly speaking (exact rules and exceptions can be read in the standard). Now, if result
s are strings, then you do it like this:
std::cout << ( condition1 ? result1 : "Error" )
^^^
<< ( condition2 ? result2 : "Error")
^^^
<< etc.
But if results are integers, for example, you can't do it.
HTH
Try using condition ? true-value : false-value
.
精彩评论