Dall'ANSI C99 c'è _Bool
o bool
tramite stdbool.h
. Ma c'è anche uno specificatore di formato printf
per bool?
Intendo qualcosa come in questo pseudo codice:
bool x = true;
printf("%B\n", x);
che stamperebbe:
true
Non c'è. Ma poiché qualsiasi tipo integrale più corto di int
viene promosso a int
quando viene passato agli argomenti variabili di printf()
, potete usare %d
:
bool x = true;
printf("%d\n", x); // prints 1
Ma perché non
printf(x ? "true" : "false");
o meglio
printf("%s", x ? "true" : "false");
o anche meglio
fputs(x ? "true" : "false", stdout);
invece?
Non c'è uno specificatore di formato per bool. Potete stamparlo usando alcuni degli specificatori esistenti per la stampa di tipi integrali o fare qualcosa di più fantasioso:
printf("%s", x?"true":"false");