2011-07-07 43 views
8

如何使用C++C++,三元運算符,性病::法院

int condition1, condition2, condition3; 
int/double result; //int or double 
.... 
std::cout << (condition1: result1 : "Error") 
      << (condition2: result2 : "Error") 
      << (condition3: result3 : "Error")...; 
+0

什麼是'result1'等? –

+0

三元運算符是'cond? exp1:exp2'。你已經使用了'::'除此之外,我不認爲還有什麼可說的! –

+0

@Diff:哦,是的,有,請參閱我的回答 –

回答

13

要看是什麼類型result1, result2

expressionC ? expression1 : expression2並不適用於所有類型的expression1expression2。粗略地說,它們必須可以轉化爲一種通用的類型(具體規則和例外可以在標準中讀取)。現在,如果result s爲字符串,那你就去做這樣的:

std::cout << (condition1 ? result1 : "Error") 
         ^^^ 
      << (condition2 ? result2 : "Error") 
         ^^^ 
      << etc. 

但是,如果結果爲整數,例如,你不能做到這一點。

HTH

+0

那麼將結果轉換爲char? – Johnas

+1

@Johnas:不,那不行。 ''錯誤''的類型是'const char [6]'。 'char'和'const char [6]'是不同的不兼容類型 –

+0

感謝您的幫助和評論。 – Johnas

1

嘗試三元運營商使用condition ? true-value : false-value寫出下列條件。