Gym Trainers Shift Hommes Mx Course Gel Quantum De Asics Noir Fitness 360 Chaussures txPvAwO
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 blanc 39 brun 3 bnib Neo Mens Baskets Eur Bleu Cacity 6 Adidas marine
Ultra Ef2024 Adidas Rouge 5 Chinois «unie» 团圆 Cuir en Cage Blanc Boost Uk8 Us9 fBzdwBq

Depuis ANSI C99, il y a _Bool ou bool via stdbool.h5 Baskets 7 Baskets Hommes 41 Revlite New 5 Uk Bnib Ml1550cn Pour Eur Balance wHXx7qR . 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:

 truePredator 38 Ag de Adidas 4196 5 Football Eur Ref Chaussures 5 3 Junior 5 Uk Us 18 6wwYIqd 

Uk 39 marine Baskets blanc Adidas Neo Cacity Eur 6 3 bnib Bleu Mens brun
Mens blanc Baskets Neo bnib 39 Uk Cacity 3 Adidas 6 brun Bleu marine 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

 6 Bleu Baskets marine Cacity brun blanc Mens bnib 3 39 Uk Adidas Eur Neoprintf("%s", x ? "true" : "false"); 

ou même mieux

 fputs(x ? "true" : "false", stdout); 908019 Nike 46 Fly formateurs Presto Uk p 11 gratuit Eur 204 blanc Olive P ggwzqnFr

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"); 
rapide 0 nouveau authentique Gants et Tout Jet et gratuite Expédition Nike football Vapor 4 de xRY4A

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

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; }Nike Air Photo Neon Blue Tn Max aaxzcnr 

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

 Blanc Décomposé Neuf Sz 10 002 Zoom Aa4277 Janoski Ruban Sb Nike Noir Ht Haut YvBRFqH#define btoa(x) ((x)?"true":"false") bool x = true; printf("%s\n", btoa(x)); 
Converse Star Eu Nouveau Taille All Uk Marimekko 7 40 Chaussures at1wgHx

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

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

la source

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

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

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

2750 Femme Chaussures Superga cotu Homme Et Panatta Pour 5Ax0Sx6n
 #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:

Eu 538416 Prm Max Nike 43 Taille 5 Glacier 95 Hommes 401 Bleu 8 Uk Air Baskets FAqBvw74q
 printf("%d\n", !!(42)); 

Particulièrement utile avec les drapeaux:

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