簡體   English   中英

C++ bool 返回 0 1 而不是真假

[英]C++ bool returns 0 1 instead of 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 為真

你可以使用std::boolalpha

設置str流的boolalpha格式標志。

設置boolalpha格式標志時,插入/提取bool值作為其名稱:true和false而不是整數值。

這個標志可以用n​​oboolalpha操縱器取消設置。

初始化時,標准流中未設置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::string str = (a == b) ? "true" : "false";

這個直接修復

std::cout << std::boolalpha << "a == b is " << (a == b) << '\n';

有了這個,它涵蓋了它一般而不重復 std::boolalpha

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM