What is the printf format specifier for bool?

前端 未结 8 769
有刺的猬
有刺的猬 2020-11-28 17:13

Since ANSI C99 there is _Bool or bool via stdbool.h. But is there also a printf format specifier for bool?

I mean

8条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-11-28 17:54

    There is no format specifier for bool types. However, since any integral type shorter than int is promoted to int when passed down to printf()'s variadic arguments, you can use %d:

    bool x = true;
    printf("%d\n", x); // prints 1
    

    But why not:

    printf(x ? "true" : "false");
    

    or, better:

    printf("%s", x ? "true" : "false");
    

    or, even better:

    fputs(x ? "true" : "false", stdout);
    

    instead?

提交回复
热议问题