1. ホーム
  2. c++

[解決済み】boolのprintfフォーマット指定子とは?

2022-03-23 10:56:35

質問

ANSI C99 からは _Bool または bool を介して stdbool.h . しかし printf の書式指定子で、bool を指定できますか?

あの擬似コードのようなものという意味です。

bool x = true;
printf("%B\n", x);

と表示されます。

true

解決方法は?

には書式指定子がありません。 bool という型があります。しかし int に昇格します。 int に受け継がれるとき printf() のバリアド引数を使用すると %d :

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

でも、なぜダメなのか。

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

とか、もっといい。

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

とか、もっといい。

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

の代わりに?