C++ bool 返回 0 1 而不是 true false

我重载了 equals(包括 == 和 !=),它检查两个对象是否相等,然后返回一个布尔值.

不幸的是,它打印的是 0 或 1.我知道它是正确的,但为了便于阅读,我无法弄清楚如何让它打印 true 或 false.

我什至尝试过:

if (a.equals(b))
{
    return true;
}

return false;

但是,C++ 很顽固,输出 0 或 1.

任何帮助将不胜感激.

编辑 - 打印完成:

cout << "a == b is " << (a == b) << endl;

想要的输出是

a == b 为真

qq313987933 回答:C++ bool 返回 0 1 而不是 true false

你可以使用std::boolalpha:

为 str 流设置 boolalpha 格式标志.

Sets the boolalpha format flag for the str stream.

当设置了 boolalpha 格式标志时,bool 值是插入/提取为他们的名字:真假而不是整数价值观.

可以使用 noboolalpha 操纵器取消设置此标志.

初始化时标准流中未设置 boolalpha 标志.

std::cout.setf(std::ios::boolalpha);
std::cout << true;

std::cout << std::boolalpha << true;

这篇关于C++ bool 返回 0 1 而不是 true false的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持前端之家!

本文链接:https://www.f2er.com/3181267.html

大家都在问