Από την ANSI C99 υπάρχει το _Bool
ή το bool
μέσω του αρχείου stdbool.h
. Αλλά υπάρχει επίσης ένας καθορισμός μορφής printf
για το bool;
Εννοώ κάτι όπως σε αυτόν τον ψευδοκώδικα:
bool x = true;
printf("%B\n", x);
το οποίο θα εκτύπωνε:
true
Δεν υπάρχει. Αλλά δεδομένου ότι οποιοσδήποτε ολοκληρωτικός τύπος μικρότερος από int
προάγεται σε int
όταν περνάει στα μεταβλητά ορίσματα της printf()
, μπορείτε να χρησιμοποιήσετε το %d
:
bool x = true;
printf("%d\n", x); // prints 1
Αλλά γιατί όχι;
printf(x ? "true" : "false");
...ή καλύτερα...
printf("%s", x ? "true" : "false");
ή ακόμα καλύτερα
fputs(x ? "true" : "false", stdout);
αντ' αυτού;
Δεν υπάρχει προσδιορισμός μορφής για το bool. Μπορείτε να το εκτυπώσετε χρησιμοποιώντας κάποιους από τους υπάρχοντες προσδιοριστές για την εκτύπωση ολοκληρωτικών τύπων ή να κάνετε κάτι πιο φανταχτερό:
printf("%s", x?"true":"false");