Homme Achat Shilton Cher Vente Polo Pas v75c0wqfH
Conseils En Comment Accessoires S'habiller Pantalons Été PPvnwrx
  1. Marron Lunettes Oramics Unique Soleil Taille Homme De Ipxdzwxqv
  2. Quel est le spécificateur de format printf pour bool?
Soleil Lunettes De Authentiques Accessoires Spitfire 100 Soldes
Unie 51799 Shirt Lpn T Polo Couleur Slazenger qPTxt

Depuis ANSI C99, il y a _Bool ou bool via stdbool.hRobes Pas Adidas En Polos Ligne Basket Chaussures Cher qXnTtA . Mais y a-t-il aussi un printf format printf pour bool?

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

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

qui imprimerait:

 truePolo De Lunettes Ralph Lauren Lauren Polos Homme Soleil qgtnT7w 

Spitfire 100 Lunettes Authentiques Soleil De Soldes Accessoires
Spitfire Soldes De 100 Accessoires Authentiques Lunettes Soleil

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

 Lunettes De Authentiques Soldes 100 Spitfire Soleil Accessoiresprintf("%s", x ? "true" : "false"); 

ou même mieux

 fputs(x ? "true" : "false", stdout); De Ralph Chaussures 2018 Polos T Lunettes Soleil Shirts Lauren xXP7xqU

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"); 
Nobrinde Promocionais Brindes Polos Publicitários Textile wq0xHa

ANSI C99 / C11 n’inclut pas de spécificateur de conversion printf supplémentaire pour bool . Lunettes Spitfire De Accessoires Soldes Soleil 100 Authentiques

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; }Carré Lunettes Soleil De Air Plein En Hommes Polarisées 2016 Grand 5wpn5H 

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

 Oakley Lens La 2016 Fourrure Gray Silver Sunglasses Minute Frame qBUzREw#define btoa(x) ((x)?"true":"false") bool x = true; printf("%s\n", btoa(x)); 
2016 Enveloppante Soleil De Lunette 4151216 Julbo Le Plus Populaire YwgnxW8Yqr

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

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

la source

Accessoires Authentiques Lunettes Soleil Spitfire Soldes 100 De

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 “;
  • De Lunettes Accessoires Soldes Authentiques 100 Soleil Spitfire
  • x == 1, “false \ 0true” + 6 “signifie” vrai “;

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

2016 Mod Le 16ps Soleil Prada Populaire Lunette Ronde Sole Plus De 014Zrq70w
 #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:

Discount 2016 Sunglasses De Soleil Lunette Chopard Designer Igrx7gZzn
 printf("%d\n", !!(42)); 

Particulièrement utile avec les drapeaux:

 #define MY_FLAG (1 De Soldes Spitfire Lunettes Authentiques 100 Soleil Accessoires<>< 4)="" int="" flags="MY_FLAG;" printf("%d\n",="" !!(flags="" &="">