-1

重複の可能性:
c の printf で「%.*s」が意味するもの

次の行を見つけました:

asprintf(&c, "%s%.*s", *msg_in, size * rxed, buffer)

そして意味が知りたい%.*s

4

2 に答える 2

4

この形式は、「 n文字%.*sのフィールド幅を使用して文字列を出力します。ここで、 nは次の引数から読み取られます」。

ここでは、文字bufferの幅で印刷します。size * rxed(必要に応じてスペースでパディング)

于 2012-12-21T15:32:46.523 に答える
2

マニュアルを読むことを強くお勧めします...

.*フォーマット文字列の意味は次のとおりです。

精度はフォーマット文字列では指定されませんが、フォーマットする必要がある引数の前に追加の整数値引数として指定されます。

詳細はこちらでご覧いただけます

したがって、詳細は提供しませんでしたが、次の結果size * rxedが 5 だった場合、次のようにすることができます。

asprintf(&c, "%s%.*s", *msg_in, size * rxed, buffer)

また

asprintf(&c, "%s%5s", *msg_in, buffer)

同じ効果があります。

于 2012-12-21T15:34:38.353 に答える