整数を printf するにはどうすればよいですか? 私が使用する場合:
int n = GetInt();
printf("%n \n", n);
未使用の変数があり、コンパイルできないというエラーが表示されます。
整数を printf するにはどうすればよいですか? 私が使用する場合:
int n = GetInt();
printf("%n \n", n);
未使用の変数があり、コンパイルできないというエラーが表示されます。
符号付き整数は%d
(または%i
) を使用します。
man 3 printf
修飾子の全リストについては、(Unix ライクなシステムの場合)も参照してください。
他の回答が示すように、通常int
は%d
変換仕様を使用して、またはオプションで変換仕様を使用してを印刷します%i
。%o
、、%x
または%X
(および)を使用することもできますが%u
、技術的には、そうすることによって暗黙的に符号付きから符号なしへの変換が行われます。
これは、 etal%n
の有効な変換仕様であることに注意してください。printf()
ただし、他のすべての変換仕様とは異なり、%n
変換仕様は、へのポインタを受け取る出力操作でありint
、フォーマット文字列のその時点までに書き込まれた文字数を調べるために使用されます。したがって、次を使用できます。
int n = GetInt();
int c;
printf("%d%n\n", n, &c);
printf("%d characters in number %d\n", c, n);
また、改行の前にスペースが必要になることはほとんどないことにも注意してください。
TR24731-1(またはISO / IEC 9899:2011 Annex K、境界チェックインターフェイス)は、他を定義し、printf_s()
入力%n
パラメータではなく出力パラメータであるために問題が発生することが多いため、変換仕様を明示的に非合法化します。
これは、渡した整数に対応する書式指定子を使用する必要があるためです。最も一般的なのは%d
. を に置き換えてみて%n
ください%d
。