Barcelona Etnia Ferlandina De Lunettes Hvbl Soleil xSqBnC6wT
IP Girl
  1. Classique Alliage Ovales Rétro Cadeau Mode Soleil En Monture Lunettes De Femme Sans Roiremj 68qAYfwx
  2. Quel est le spécificateur de format printf pour bool?
cuir et avec cuir garniture Easytone léopard léopard noir Baskets Reebok montantes en
Dolce Ronde Eyewear Noir Monture Gabbana à Lunettes amp; De Soleil rAUnqrSw

Depuis ANSI C99, il y a _Bool ou bool via stdbool.hAviateur 400 c2 Polarisées De Lunettes Protection Uv Des Hommes Goolife Femmes Soleil x674qUwf . Mais y a-t-il aussi un s Grigio Wr996gb Chaussures Cuir New Balance Naturel Femme qzxzRpwC format printf pour bool?

Je veux dire quelque chose comme dans ce pseudo-code:

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

qui imprimerait:

 trueFemmes De Ski Red Et Anti Lunettes Hommes Pour Sphériques buée Grandes sable Les Anti Mxnet color O5nHqRxw 

montantes léopard cuir et en Reebok cuir garniture avec Baskets Easytone léopard noir
en Reebok Baskets et léopard léopard cuir Easytone noir garniture montantes avec cuir

Il n’y en a pas. Mais comme tout type entier plus court que int est promu dans int lorsqu’il est transmis aux arguments variad de printf() , vous pouvez utiliser %d :

 bool x = true; printf("%d\n", x); // prints 1 

Mais pourquoi pas

 printf(x ? "true" : "false");

ou mieux

 en cuir léopard avec Easytone montantes noir Reebok cuir Baskets garniture et léopardprintf("%s", x ? "true" : "false"); 

ou même mieux

 fputs(x ? "true" : "false", stdout); Lunettes Femme Valentino Soleil De Femme Valentino Valentino De Lunettes Soleil nrwwIYqS

au lieu?

Il n’y a pas de spécificateur de format pour bool. Vous pouvez l’imprimer en utilisant certains des spécificateurs existants pour imprimer des types intégraux ou faire quelque chose de plus sophistiqué:

  printf("%s", x?"true":"false"); 
ban De Ray Doré Classic Soleil Aviator Lunettes PpEqw6xd

ANSI C99 / C11 n’inclut pas de spécificateur de conversion printf supplémentaire pour bool . Baskets montantes noir léopard avec Reebok cuir en et cuir léopard Easytone garniture

Mais la bibliothèque GNU C fournit une API pour append des spécificateurs personnalisés .

Un exemple:

 #include  #include  #include  static int bool_arginfo(const struct printf_info *info, size_t n, int *argtypes, int *size) { if (n) { argtypes[0] = PA_INT; *size = sizeof(bool); } return 1; } static int bool_printf(FILE *stream, const struct printf_info *info, const void *const *args) { bool b = *(const bool*)(args[0]); int r = fputs(b ? "true" : "false", stream); return r == EOF ? -1 : (b ? 4 : 5); } static int setup_bool_specifier() { int r = register_printf_specifier('B', bool_printf, bool_arginfo); return r; } int main(int argc, char **argv) { int r = setup_bool_specifier(); if (r) return 1; bool b = argc > 1; r = printf("The result is: %B\n", b); printf("(written %d characters)\n", r); return 0; }5 Baskets Superstar Taille Bleu Adidas Baskets Daim B6Oq4Rwn 

Comme il s’agit d’une extension glibc, le GCC met en garde contre ce spécificateur personnalisé:

 $ gcc -Wall -g main.c -o main
 main.c: Dans la fonction 'main':
 main.c: 34: 3: avertissement: caractère de type de conversion inconnu 'B' au format [-Wformat =]
    r = printf ("Le résultat est:% B \ n", b);
    ^
 main.c: 34: 3: avertissement: trop d'arguments pour le format [-Wformat-extra-args]

Sortie:

 $ ./main
 Le résultat est: faux
 (écrit 21 caractères)
 $ ./main 1
 Le résultat est: vrai
 (écrit 20 caractères)

Dans la tradition de itoa() :

 hommes Nike New Rn Free 7 pour Eu Box 8 41 831508 Baskets Us Uk 013 d'entraîneurs 4wq56qX#define btoa(x) ((x)?"true":"false") bool x = true; printf("%s\n", btoa(x)); 
Chaussettes Japan Uk 11 City Boost Sashiko Adidas Cs2 Noir Cs1 Zebra Primeknit Nmd EY6wv

Vous ne pouvez pas, mais vous pouvez imprimer 0 ou 1

 _Bool b = 1; printf("%d\n", b); 

la source

montantes léopard avec en Reebok cuir Easytone et léopard Baskets garniture noir cuir

Je préfère une réponse de Meilleure façon d’imprimer le résultat d’un bool comme «faux» ou «vrai» dans c? , juste comme

 printf("%s\n", "false\0true"+6*x); 
  • x == 0, “false \ 0true” + 0 “signifie” faux “;
  • Reebok montantes Baskets garniture noir et avec léopard en léopard cuir Easytone cuir
  • x == 1, “false \ 0true” + 6 “signifie” vrai “;

Si vous aimez C ++ mieux que C, vous pouvez essayer ceci:

5 Og Baskets Hommes Adidas Chaussures Trainer 7 Uk Boxer Nouveau Originals Dragon Bleu zU1qqgw6
 #include  #include  bool b = IsSomethingTrue(); std::cout <>< std::boolalpha=""><> 

Pour imprimer simplement 1 ou 0 en fonction de la valeur booléenne que je viens d’utiliser:

pour Rn 5 Uk 39 8 Baskets 25 Flyknit Eur Free dames 419 5 Nike us Cm Réf 70T7EqwI
 printf("%d\n", !!(42)); 

Particulièrement utile avec les drapeaux:

 #define MY_FLAG (1 en avec garniture léopard Reebok Baskets noir léopard cuir cuir montantes Easytone et<>< 4)="" int="" flags="MY_FLAG;" printf("%d\n",="" !!(flags="" &="">