printf で可変テキスト列幅を設定する



C 言語で列のサイズを決定するには、%<number>d を使用します。 .
たとえば、%3d と入力できます
私の問題は、% の後の番号が は受け取る変数なので、 %xd のようなものが必要です (ここで x は、プログラムで以前に受け取った整数変数です。
しかし、機能していません。


これを行う他の方法はありますか?


答え:


これは次のように行うことができます:


printf("%*d", width, value);

Lee のコメントから:

精度に * を使用することもできます:


printf("%*.*f", width, precision, value);

両方の width に注意してください そして precision タイプ int でなければなりません printf の予想通り * の場合 引数、タイプ size_t ターゲット プラットフォームではサイズと表現が異なる可能性があるため、不適切です。