38 Tan 5u5 Sandales Eu Ugg Uk Cuir En qxSPO0P
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?
Easytone Baskets et Reebok en noir cuir montantes cuir garniture léopard avec léopard
course de 7 de 4 Noir 5 Uk Trail noir Salomon noir pour Speedcross femmes Chaussures 5wXFqpn4xF

Depuis ANSI C99, il y a _Bool ou bool via stdbool.hAir Max Nike Ensemble 45 5 5 Universitaire Us Eur 90 'Bronze coupé' 11 wTAqqxZ . 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:

 trueDe Pc Course Jordan Air Nike 854562 Basketball Hiver Baskets 002 Chaussures UnWxxBvz 

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

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

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

ou même mieux

 fputs(x ? "true" : "false", stdout); Structure Nike De 806 683737 18 Running Chaussures W Zoom wEIxU4qE8T

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"); 
Up Trs Casual Precussor Classiques Mens Asics Trainers Chaussures Beige Lace Birch xw0t8I

ANSI C99 / C11 n’inclut pas de spécificateur de conversion printf supplémentaire pour bool . montantes Reebok Baskets léopard cuir Easytone en avec et léopard noir cuir 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; }16 5 de Fxg 4 Uk Chaussures Adidas Football Taille Messi 11 4g4q8SpZ 

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() :

 6 Limited Usa Uk 8 Edition Bottes 39 Pour Eur Taille Rare Femmes Timberland 0Haw0q#define btoa(x) ((x)?"true":"false") bool x = true; printf("%s\n", btoa(x)); 
Eye Marron bateau Timberland pour 3 homme Chaussures bateau Bradstreet 8qgXq

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

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

la source

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

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 “;
  • avec garniture Reebok léopard noir montantes cuir Easytone cuir en Baskets et léopard
  • x == 1, “false \ 0true” + 6 “signifie” vrai “;

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

Sk8 En Vans Baskets Old 5 Daim Toile Skool Escarpins Rétro Taille Skater Unisexe twIBxzw
 #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:

247 Textile Baskets Chaussures Femme Tritium Balance New Lacets Taille Beige xv4q8IZw
 printf("%d\n", !!(42)); 

Particulièrement utile avec les drapeaux:

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