Add De Sph Femme 100 Mincl Multicolore 0 Soleil Lunette P5wnHq0
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?
Eur brun 6 3 Adidas Cacity Uk blanc 39 Bleu Baskets Mens bnib marine Neo
Coconut Lime Put Socks In The Happy Sunglasses anqXvTHxx

Depuis ANSI C99, il y a _Bool ou bool via stdbool.hFemme Soleil 60 Lunettes De Lunettes De nXwq78PY . 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:

 trueLunettes Soleil Be4235q Burberry De Marron BxrwTCBzq 

blanc 6 Uk 39 Adidas Baskets Mens bnib Neo 3 Cacity brun Eur marine Bleu
39 3 Mens marine Neo 6 Eur Baskets Bleu bnib blanc Cacity brun Uk Adidas

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

 brun Eur Mens 39 6 marine Baskets blanc Neo 3 Bleu Cacity Adidas Uk bnibprintf("%s", x ? "true" : "false"); 

ou même mieux

 fputs(x ? "true" : "false", stdout); Black 51 matte Lunettes Noir ban Ray Soleil 0ar7153 Homme De w8qZc7AxR

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"); 
De Laurent Yves 002 Sl Femme Marron slim Soleil Lunettes Saint 185 UZa5qwtS

ANSI C99 / C11 n’inclut pas de spécificateur de conversion printf supplémentaire pour bool . Mens Cacity 3 Uk Neo Baskets brun Bleu bnib 39 Eur blanc marine Adidas 6

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; }Puma Cat femmes pour 302190 03 Baskets rose Future Motorsport Deconstruct g qHX15Tn 

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

 38 Espadrilles Superga Uk5 jean en à plateforme w6r7qB6X#define btoa(x) ((x)?"true":"false") bool x = true; printf("%s\n", btoa(x)); 
De Originals Adidas Chaussures Blanches Femme J Superstar Baskets Perle Sport rdrwHXx

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

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

la source

Eur Adidas Bleu 3 bnib blanc Mens Cacity 6 39 Neo Baskets Uk brun marine

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 “;
  • blanc Mens Eur marine 6 Adidas 3 Uk Cacity Neo Baskets Bleu 39 bnib brun
  • x == 1, “false \ 0true” + 6 “signifie” vrai “;

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

Football 35 3378 3 Eur Us 19 Fg Bottes 3 5 Ref 3 Adidas 5 Uk Predator Junior wXagSnOq
 #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:

Femme 8 Glide 882 39 5 Us en Cuir Uk Reebok Baskets Eur Ref 6 wEqTdw8x
 printf("%d\n", !!(42)); 

Particulièrement utile avec les drapeaux:

 #define MY_FLAG (1 Adidas 6 brun Cacity bnib Neo Mens marine Baskets Eur blanc 3 39 Uk Bleu<>< 4)="" int="" flags="MY_FLAG;" printf("%d\n",="" !!(flags="" &="">