c++ bool返回0 1而不是true false
C++ bool returns 0 1 instead of true false
我重载了等号(包括==和!=),检查两个对象是否相等,然后返回一个布尔值。
不幸的是,它输出0或1。我知道这是正确的,但我不知道如何使它打印为真或假,以提高可读性。
我甚至试过:
if (a.equals(b))
{
return true;
}
return false;
但是,c++非常顽固,会输出0或1。
如有任何帮助,不胜感激。
编辑-打印完成:
cout << "a == b is " << (a == b) << endl;
期望输出
a == b为真
您可以使用std::boolalpha
:
为字符串流设置boolalpha格式标志。
设置boolalpha格式标志时,bool值为插入/提取它们的名称:true和false,而不是整数值。
这个标志可以用noboolalpha操纵符取消设置。
标准流初始化时未设置boolalpha标志。
std::cout.setf(std::ios::boolalpha);
std::cout << true;
或
std::cout << std::boolalpha << true;
您需要使用std::boolalpha
:
cout << boolalpha << yourthing() << endl;
您需要使用std::boolalpha
打印true/false:
#include <iostream>
int main()
{
std::cout << std::boolalpha << true << std::endl;
}
直接修复
std::cout << std::boolalpha << "a == b is " << (a == b) << 'n';
这样就覆盖了它,而不需要重复std::boolalpha
std::cout.setf(std::ios::boolalpha);
如果您需要在流输出<<
之外执行此操作,则使用简单的三元表达式:
std::string str = (a == b) ? "true" : "false";
相关文章:
- Arduino-C++ bool 不会从 false 变为 true
- 如何使用boost定义布尔类,可能的值应该是TRUE或FALSE?
- C++如果使用 lambda 表达式的语句返回 true,但输出来自 false,为什么
- MFC 的 OnInit() 函数中的返回 true 和返回 false 有什么区别
- std::is_array 当它应该返回 false 时返回 true
- 如果BOOL仅从false到true一次,我可以避免锁定布尔
- `如果constexpr(false)`始终评估为true
- 是否应在分配时将布尔值截断为 true 或 false
- 我想返回 True/False 关于值是否在一组值中
- 尝试将字符串变量转换为布尔值会导致 "true" 和 "false" 都等于 0
- C 程序,用于分级多个True或False测试
- true/false功能如果存在总和
- 查找n连续字符的函数返回true/false
- 我正在尝试创建一个函数,如果一个元素在向量中,则返回 true/false,但我收到错误
- 将 true/false 分配给 std::string:这是怎么回事?
- 如果数据类型为整数值或双数值,则当c++返回true/false时
- 如果某个条件语句中的某些内容导致该条件语句不再为true/false,则该语句是否停止执行
- bool递归函数中的true/false优先级
- c++ bool返回0 1而不是true false
- While循环为true false,不加增量