2

重複の可能性:
cのprintfで「%。*s」はどういう意味ですか

この質問は確かに他の場所で尋ねられていることは知っていますが、「%。* s」を検索しても、SOでは意味がありません。誰かが私に次の行を説明してもらえますか?

printf("%.*s", len, buffer);

4

2 に答える 2

12

len出力を最大で文字数に制限します。は.「精度」を開始します。「引数リストからのを使用して精度を決定します」と*言います。int'文字列'(buffer)は、。より長い場合はnullで終了する必要がないことに注意してくださいlen

これはすべて、のマニュアルページで簡単に見つけることができますprintf()

于 2012-10-29T15:12:23.430 に答える
1

ここに、さまざまなフォーマット指定子がすべてあなたのために何ができるかを示す素晴らしい表があります。たとえば、バッファと長さが次のように定義されているとします。

char buf[] = "Hello World";
len = 5;

%.*s文字列全体の一部を印刷するために使用できます。

printf("%.*s", len, buffer);

この場合Hello、最初の5文字(1ベース)が出力されます。これは次と同じであることに注意してください。

printf("%.5s", buffer);
于 2012-10-29T15:24:22.320 に答える