719 Stimmen

Was ist der printf-Formatplatzhalter für bool?

Seit ANSI C99 gibt es _Bool oder bool über stdbool.h. Aber gibt es auch einen printf-Formatanweiser für bool?

Ich meine so etwas wie in diesem Pseudocode:

bool x = true;
printf("%B\n", x);

was folgendes ausgeben würde:

true

3voto

Tarion Punkte 14915

Um einfach nur 1 oder 0 basierend auf dem booleschen Wert auszugeben, den ich gerade benutzt habe:

printf("%d\n", !!(42));

Vor allem nützlich bei Flags:

#define MY_FLAG (1 << 4)
int flags = MY_FLAG;
printf("%d\n", !!(flags & MY_FLAG));

0voto

xjzhou Punkte 567

Ich bevorzuge eine Antwort von Best way to print the result of a bool as 'false' or 'true' in c?, genau wie

printf("%s\n", "false\0true"+6*x);
  • x == 0, "false\0true"+ 0" bedeutet "false";
  • x == 1, "false\0true"+ 6" bedeutet "true";

0voto

Arsen Y.M. Punkte 647

Wenn du C++ lieber magst als C, kannst du dies ausprobieren:

#include 
#include 

bool b = IsSomethingTrue();
std::cout << std::boolalpha << b;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X