ANSI C99'dan beri stdbool.h
aracılığıyla _Bool
veya bool
vardır. Ancak bool için bir printf
biçim belirteci de var mı?
Yani şu sözde koddaki gibi bir şey:
bool x = true;
printf("%B\n", x);
bu da yazdırır:
true
Yok. Ancak int
ten kısa herhangi bir integral türü printf()
in değişken argümanlarına aktarıldığında int
e yükseltildiğinden, %d
kullanabilirsiniz:
bool x = true;
printf("%d\n", x); // prints 1
Ama neden olmasın?
printf(x ? "true" : "false");
veya daha iyisi
printf("%s", x ? "true" : "false");
ya da daha iyisi
fputs(x ? "true" : "false", stdout);
onun yerine?
bool için biçim belirteci yoktur. İntegral türlerini yazdırmak için mevcut belirticilerden bazılarını kullanarak yazdırabilir veya daha süslü bir şey yapabilirsiniz:
printf("%s", x?"true":"false");