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而不是整数值.
这个标志可以用noboolalpha操纵器取消设置.
初始化时,标准流中未设置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)
你需要使用std::boolalpha
:
cout << boolalpha << yourthing() << endl;
Run Code Online (Sandbox Code Playgroud)
您需要使用std::boolalpha
打印true/false:
#include <iostream>
int main()
{
std::cout << std::boolalpha << true << std::endl;
}
Run Code Online (Sandbox Code Playgroud)