自ANSI C99以来,有_Bool或通过stdbol .h的bool。但是bool是否也有printf格式说明符?
我的意思是在伪代码中
bool x = true;
printf("%B\n", x);
这将打印:
true
自ANSI C99以来,有_Bool或通过stdbol .h的bool。但是bool是否也有printf格式说明符?
我的意思是在伪代码中
bool x = true;
printf("%B\n", x);
这将打印:
true
当前回答
在itoa()的传统中:
#define btoa(x) ((x)?"true":"false")
bool x = true;
printf("%s\n", btoa(x));
其他回答
要根据我刚刚使用的布尔值打印1或0:
printf("%d\n", !!(42));
对Flags特别有用:
#define MY_FLAG (1 << 4)
int flags = MY_FLAG;
printf("%d\n", !!(flags & MY_FLAG));
在itoa()的传统中:
#define btoa(x) ((x)?"true":"false")
bool x = true;
printf("%s\n", btoa(x));
我更喜欢从最佳方式打印bool的结果为“假”或“真”在c?,就像
printf("%s\n", "false\0true"+6*x);
X == 0, "false\0true"+ 0"表示"false"; X == 1, "false\0true"+ 6",表示"true";
如果你喜欢c++胜过C,你可以试试这个:
#include <ios>
#include <iostream>
bool b = IsSomethingTrue();
std::cout << std::boolalpha << b;
你不能,但你可以打印0或1
_Bool b = 1;
printf("%d\n", b);
源