2012-10-21 108 views
0
#include <iostream> 
using namespace std ; 
int main() 
{ 
    int a=5, b=4; 
    cout<< a==b; 
} 

爲什麼我不能打印這段代碼。我如何打印布爾值?在C++中打印布爾值

+3

你有沒有試過把'a == b'放在括號裏? –

回答

1

你必須把括號圍繞您的測試:

cout<< (a==b); 
+0

但爲什麼這個工程,但我的不是? – user1559792

+0

由於運算符<<優先於==,所以像運算符\ *優先於+當您執行1 + 2 \ * 3時 – alestanis

6

使用std::boolalpha打印爲truefalse。並添加括號,請參閱Vaughn Cato的解答。

#include <iostream> 
#include <iomanip> 
using namespace std ; 
int main() 
{ 
    int a=5, b=4; 
    cout<< boolalpha << (a==b); 
} 
+0

仍然不編譯 – alestanis

+0

它編譯在我身邊 – Zoneur

+0

我在寫入括號之前寫道圍繞一個== b。 – alestanis

0

將圓括號(括號內)周圍a==b

cout<< (a==b); 

這是必需的,因爲<<==更大的運算符優先級。

+2

括號,而不是括號 – alestanis

+0

他們也被稱爲'圓括號'。否則我同意括號更準確。 –

+0

我檢查了維基百科上的內容,發現我所說的括號{}是「法國括號」(我住在法國):D – alestanis

7

您正在處理運算符優先級問題:

cout << a==b; 

被解釋爲

(cout << a) == b; 

因爲< <比==更高的優先級。