%* s書式指定子C

printf("%d",printf("%*s%*s",6,"",6))

2つの数字(6 + 6)を追加すると、そのようなタイプのフォーマット指定子

ベストアンサー

あなたの例が不正です、 “ネストされた” printf の引数がありません。

このように書くと:

printf("%d",printf("%*s%*s",6,"",6, ""));

一種のokになったら。 * は、精度フィールドが printf
の次の引数から読み取られなければならないことを意味します。したがって、この場合、 “入れ子になった”
printf は、最大6文字の2文字列を出力します。

printf は書き込まれた文字の数を返すので、 printf の内側は
printf の外側に12を返します。

マニュアルページの関連部分からの引用:

精度

     

ピリオド( ‘。’)の後にオプションの10進数文字列を続けたオプションの精度。
         10進数の文字列の代わりに、指定するために
“*” または “* m $”(10進整数mの場合)を書くことができます
         精度は次の引数、またはm番目の引数で指定されます。
         int型である必要があります。精度が「。」として指定されている場合、または精度が負の場合、精度
         は0になる。これにより、d、i、o、u、x、およびXの最小桁数が表示されます
         コンバージョン数、a、e、E、f、およびFの基数文字の後に表示される桁数con
con-
         バージョン、gおよびGコンバージョンの有効数字の最大桁数、または
         sおよびSコンバージョンの文字列から印刷される文字。

私はこれがどのように移植可能かは分かりませんが、私は確信しているのは
2つの数字を追加するもっと良い方法があるということです。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です