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

xBl*_*lue 26 c++ boolean overloading

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

不幸的是,它打印0或1.我知道它是正确的但我无法弄清楚如何为了可读性目的打印真或假.

我甚至尝试过:

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

return false;
Run Code Online (Sandbox Code Playgroud)

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

任何帮助,将不胜感激.

编辑 - 打印完成:

cout << "a == b is " << (a == b) << endl;
Run Code Online (Sandbox Code Playgroud)

期望的输出是

a == b是真的

Luc*_*ore 47

你可以使用std::boolalpha:

设置str流的boolalpha格式标志.

设置boolalpha格式标志时,插入/提取bool值作为其名称:true和false而不是整数值.

这个标志可以用n​​oboolalpha操纵器取消设置.

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

std::cout.setf(std::ios::boolalpha);
std::cout << true;
Run Code Online (Sandbox Code Playgroud)

要么

std::cout << std::boolalpha << true;
Run Code Online (Sandbox Code Playgroud)


Joh*_*nck 6

你需要使用std::boolalpha:

cout << boolalpha << yourthing() << endl;
Run Code Online (Sandbox Code Playgroud)


BЈо*_*вић 6

您需要使用std::boolalpha打印true/false:

#include <iostream>

int main()
{
  std::cout << std::boolalpha << true << std::endl;
}
Run Code Online (Sandbox Code Playgroud)