Seit ANSI C99 gibt es _Bool
oder bool
über stdbool.h
. Aber gibt es auch einen "printf"-Formatspezifikation für bool?
Ich meine so etwas wie in diesem Pseudocode:
bool x = true;
printf("%B\n", x);
was ausgeben würde:
true
Es gibt keine. Aber da jeder Integraltyp, der kürzer als int
ist, in int
umgewandelt wird, wenn er an die variablen Argumente von printf()
weitergegeben wird, können Sie %d
verwenden:
bool x = true;
printf("%d\n", x); // prints 1
Aber warum nicht
printf(x ? "true" : "false");
oder besser
printf("%s", x ? "true" : "false");
oder noch besser
fputs(x ? "true" : "false", stdout);
stattdessen?
Es gibt keine Formatspezifikation für bool. Sie können es mit einigen der vorhandenen Spezifizierer für das Drucken ganzer Typen drucken oder etwas Ausgefalleneres machen:
printf("%s", x?"true":"false");