%* s形式指定子の意味は何ですか?
-
05-07-2019 - |
質問
保守する必要のあるコードには、フォーマット指定子%* s
があります。誰がこれが何であり、なぜ使用されるのか教えてもらえますか?
その使用例は次のとおりです。
fprintf(outFile, "\n%*s", indent, "");
解決
- 幅はフォーマット文字列では指定されませんが、追加として 整数値引数 フォーマットする必要がある引数。
so" indent"パラメータリストでそれに続く文字列に割り当てる領域を指定します。
だから、
printf("%*s", 5, "");
は次と同じ
printf("%5s", "");
ループを避けて、ファイルにスペースを入れるのに便利な方法です。
他のヒント
"%* s"を使用しないでくださいNULLで終了(パック)されていないバッファーでは、「長さ」のみを出力すると考えられます。フィールド。
http://www.cplusplus.com/reference/clibrary/cstdio/ printf /
幅はフォーマット文字列では指定されませんが、フォーマットする必要がある引数に先行する追加の整数値引数として指定されます。
eg: printf("%* s&quot ;, 4、myValue);
は printf("%4s&quot ;, myValue);
と同等です。 p>
書式指定子%4sは、フィールド幅4&#8212の文字列を出力します。つまり、printfは少なくとも4文字の位置で値を表示します。
出力する値の幅が4文字位置よりも less
の場合、値はデフォルトでフィールド内の right justified
です。
値が 4文字位置よりも広い
の場合、フィールド幅は適切な文字数に合わせて expands
します。
値を左揃えするには、負の整数を使用してフィールド幅を指定します。
printf("%*d", 5, 10) //will result in "10" being printed with a width of 5.
所属していません StackOverflow