【问题标题】:printing boolean in c++在 C++ 中打印布尔值
【发布时间】:2012-10-21 14:31:10
【问题描述】:
#include <iostream>
using namespace std ;
int main()
{
    int a=5, b=4;
    cout<< a==b;
}

为什么我不能打印此代码。如何打印布尔值?

【问题讨论】:

  • 你试过把a==b放在括号里吗?

标签: c++ printing boolean cout


【解决方案1】:

您正在处理运算符优先级问题:

cout << a==b;

被解释为

(cout << a) == b;

因为

【讨论】:

    【解决方案2】:

    使用std::boolalpha 打印为truefalse。并添加括号,请参阅 Vaughn Cato 答案以获得解释。

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

    【讨论】:

    • 我在你把括号括在 a==b 之前写了。
    • 请解释为什么括号对提问者来说是必要的。
    • @sftrabbit 我不知道,但 Vaughn Cato 解释了
    【解决方案3】:

    你必须在你的测试周围加上括号:

    cout<< (a==b);
    

    【讨论】:

    • 因为操作符
    【解决方案4】:

    a==b 周围加上圆括号(括号):

    cout<< (a==b);
    

    这是必需的,因为&lt;&lt; 的运算符优先级高于==

    【讨论】:

    • 它们也被称为round brackets。否则我同意括号更准确。
    • 我在 wikipedia 上查了一下,我了解到我所说的括号,即 {},是“法式括号”(我住在法国):D
    • 但是为什么这行得通而我的不行?是关于运算符优先级的吗?
    • @user1559792 - 是的,这是因为运算符优先级。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 2019-07-31
    • 2017-02-28
    • 2014-12-09
    相关资源
    最近更新 更多