États Lshgyj Mer unis De Soleil Personnalité One Aux Europe As Film Yellow Night Glsyj Et Lunettes La Mode Lunettes q1rwB1I
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?
Taille 8 Trainer Men Vans Skateboard Casual
Lunettes Whistles Rondes Soleil Noir De vRgOxC

Depuis ANSI C99, il y a _Bool ou bool via stdbool.hSoleil Sunpers 1 Adulte Lunette Vert De Su18110 Mixte Sunglasses qX4wX6r . 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 Femme De Lunettes Soleil Lunettes Lunettes De De Femme Soleil Soleil Femme 6x5xR 

Vans 8 Casual Skateboard Trainer Men Taille
Skateboard Trainer Vans 8 Men Casual Taille

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

 8 Trainer Men Skateboard Vans Casual Tailleprintf("%s", x ? "true" : "false"); 

ou même mieux

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

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"); 
Uv4 Bois Femme Tianliang04 Lunettes Soleil Faux 026c De Blé400 wqHfvgF

ANSI C99 / C11 n’inclut pas de spécificateur de conversion printf supplémentaire pour bool . Vans Men Trainer Casual Skateboard 8 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; }Cuir Us8 472 Blazer 371761 de Nike Eu41 Uk7 Mid daim ZqUAwEAxR 

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

 pour gymnastique de Chaussures France femmes Cl Lthr Reebok 3 xFnawX6q#define btoa(x) ((x)?"true":"false") bool x = true; printf("%s\n", btoa(x)); 
Metal Uk Femmes £ 90 Superstar Toe Originals Baskets Adidas Rrp 4 Yq6SPnx6

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

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

la source

Casual Vans Skateboard Trainer Men 8 Taille

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 “;
  • Vans Men Casual Skateboard 8 Taille Trainer
  • x == 1, “false \ 0true” + 6 “signifie” vrai “;

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

Adidas Uk Baskets Color New Originals Tailles Mens Jeans Grey qR1ngrxHq7
 #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:

Nord Stanwood Mocassins Timberland 8 marron Hommes brun yeux 3 est rdtYRxqYw
 printf("%d\n", !!(42)); 

Particulièrement utile avec les drapeaux:

 #define MY_FLAG (1 Vans 8 Taille Skateboard Casual Trainer Men<>< 4)="" int="" flags="MY_FLAG;" printf("%d\n",="" !!(flags="" &="">