在 C 中将 bool 转换为文本

新手上路,请多包涵

也许这是一个愚蠢的问题,但是有没有办法将布尔值转换为字符串,使 1 变为“true”,0 变为“false”?我可以只使用 if 语句,但很高兴知道是否有一种方法可以使用语言或标准库来做到这一点。另外,我是个书呆子。 :)

原文由 Jason Baker 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 784
2 个回答

使用 C++ 语言本身怎么样?

 bool t = true;
bool f = false;
std::cout << std::noboolalpha << t << " == " << std::boolalpha << t << std::endl;
std::cout << std::noboolalpha << f << " == " << std::boolalpha << f << std::endl;

更新:

如果您想要超过 4 行代码而没有任何控制台输出,请访问 cppreference.com 的页面,讨论 std::boolalphastd::noboolalpha 向您显示控制台输出并解释有关 API 的更多信息.

此外,使用 std::boolalpha 将修改 std::cout 的全局状态,您可能想要恢复原始行为 ,请访问此处以获取有关恢复 std::cout 状态的更多信息

原文由 graham.reeds 发布,翻译遵循 CC BY-SA 4.0 许可协议

#include <iostream>
#include <string>

using namespace std;

string toBool(bool boolean)
{
    string result;
    if(boolean == true)
        result = "true";
    else
        result = "false";
    return result;
}

int main()
{
     bool myBoolean = true;          //Boolean
     string booleanValue;
     booleanValue = toBool(myBoolean);
     cout << "bool: " << booleanValue << "\n";
 }

原文由 David - Walter 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题