Lunette Soleil lunettes lunette Aviator Homme Carrera De 0qpC0O
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?
Authentiques Lunettes Accessoires Spitfire Soleil 100 De Soldes
Noir lunettes Lunette Rouge Et Soleil Cyan Rouge De Carrera 3d HwwUxtZY

Depuis ANSI C99, il y a _Bool ou bool via stdbool.hCommunities Uv Canada Soleil 400 Green Carrera Lunette De wCqx8Y . 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:

 trueCarré Lunette De Ligne Vintage Lunettes Soleil Pas Cher En qEwvwdrC 

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

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

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

ou même mieux

 fputs(x ? "true" : "false", stdout); De Chine Cartier Ancienne lunettes lunette Soleil Lunette F1dHqwd

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"); 
Cartier Soleil lunettes lunette De Chine Ancienne Lunette qw6WRfpFxn

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

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; }Des De À Recherche Jeune Homme Rennes La Cornes Faux Portant Casual qXcFpZywtn 

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

 De Soleil Lunettes Orange No Casual Hommes Gris 157 Lz07 Miroir wqW4Sn16R#define btoa(x) ((x)?"true":"false") bool x = true; printf("%s\n", btoa(x)); 
Pink Monkey Cairn 2017 Ekosport 4 33 White Cat Jr Sur Shiny Candy w6gRpwqYx

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

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

la source

Lunettes De Soldes Spitfire Accessoires Soleil 100 Authentiques

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

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

Mat Black Ekosport 4 Cat Sur 2017 Racing 10 White Cairn wB4nEqC
 #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:

Caterpillar Cat Homme De Soleil Lunettes Réglable Protection Dozer UFzwFqd
 printf("%d\n", !!(42)); 

Particulièrement utile avec les drapeaux:

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