我重载了equals(包括==和!=),它检查两个对象是否等于,然后返回一个布尔值。
不幸的是,它打印0或1.我知道它是正确的但我无法弄清楚如何为了可读性而打印真或假。
我甚至尝试过:
if (a.equals(b))
{
return true;
}
return false;
但是,C ++很顽固,足以输出0或1。
任何帮助都将不胜感激。
编辑 - 完成打印:
cout << "a == b is " << (a == b) << endl;
所需的输出
a == b是真的
答案 0 :(得分:46)
您可以使用std::boolalpha
:
为str流设置boolalpha格式标志。
设置boolalpha格式标志时,bool值为 插入/提取作为其名称:true和false而不是integer 值。
可以使用noboolalpha操纵器取消设置此标志。
初始化时,标准流中未设置boolalpha标志。
std::cout.setf(std::ios::boolalpha);
std::cout << true;
或
std::cout << std::boolalpha << true;
答案 1 :(得分:6)
您需要使用std::boolalpha
:
cout << boolalpha << yourthing() << endl;
答案 2 :(得分:6)
您需要使用std::boolalpha
来打印true / false:
#include <iostream>
int main()
{
std::cout << std::boolalpha << true << std::endl;
}
答案 3 :(得分:0)
如果您需要在流输出<<
之外执行此操作,则它是一个简单的三元表达式:
std::string str = (a == b) ? "true" : "false";