[英]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而不是整數值。
這個標志可以用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::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.