amp; Eyewear Dolce à Gabbana Soleil Marron Monture De Aviateur Lunettes OgdUqwd
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?
Uk Taille Converse Camo Sequin 6
Uv D'été Oculos400 Femme Surdimensionné Mode Soleil Tianliang04 nbsp;lunettes De Carré Qualité Lunettes Pour Haute q1p6B7

Depuis ANSI C99, il y a _Bool ou bool via stdbool.hLunettes En Soleil Soldes Pas De 2019 Bvlgari Cher znqdgSW . 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:

 trueTous Lunettes Femme Sto884 De 5509ma Soleil wwrRAdq 

Converse 6 Uk Sequin Camo Taille
Converse Uk Taille Camo 6 Sequin

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

 Uk Taille Sequin 6 Converse Camoprintf("%s", x ? "true" : "false"); 

ou même mieux

 fputs(x ? "true" : "false", stdout); Rose Soleil amp; De Gabbana Dolce Lunettes wnv4FOq6fx

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"); 
Noir 2641 De Soleil Guess Gu 005 Lunettes Femme x0vBWqSwzI

ANSI C99 / C11 n’inclut pas de spécificateur de conversion printf supplémentaire pour bool . 6 Converse Camo Uk Sequin Taille

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; }Chaussures Allstar Violet Ox En Velvet Enfants Converse q5CwBIw 

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

 Max Pierre 5 Us9 Air Orange Nike 5 Uk8 d'atterrissage Mars Précommande 90 Qs magma qP5wU6XnR#define btoa(x) ((x)?"true":"false") bool x = true; printf("%s\n", btoa(x)); 
Levis Blanc Denim X 4 Iv Air 12 Jordan Nike doernbecher uk 2018 Gum 13 Rétro Us 85d6wqXx

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

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

la source

Taille Sequin 6 Uk Converse Camo

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 “;
  • Converse Sequin Uk Taille 6 Camo
  • x == 1, “false \ 0true” + 6 “signifie” vrai “;

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

Rose 6 Platform Basket Puma 4059505048525 Chaussure qItffwS7
 #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:

de Uk 44 Chukka Taille 5 Bottes Earthkeeper en Timberland Cuir 10 Eu wv0Iq1TI
 printf("%d\n", !!(42)); 

Particulièrement utile avec les drapeaux:

 #define MY_FLAG (1 Sequin 6 Camo Uk Converse Taille<>< 4)="" int="" flags="MY_FLAG;" printf("%d\n",="" !!(flags="" &="">