sprintf
フォーマットされた文字列を返す
&reftitle.description;
stringsprintf
stringformat
mixedvalues
フォーマット文字列 format
に基づき生成された文字列を返します。
&reftitle.parameters;
&strings.parameter.format;
values
&reftitle.returnvalues;
フォーマット文字列 format
に基づき生成された文字列を返します。
&reftitle.errors;
&strings.errors.sprintf;
&reftitle.changelog;
&strings.changelog.sprintf;
&reftitle.examples;
引数の交換
フォーマット文字列における引数の 番号付け/交換
をサポートしています。
]]>
&example.outputs;
ここで、フォーマット文字列が別のファイルにある場合を考えてみましょう。
これは、出力を国際化したりする場合に行われる可能性があります。
たとえばフォーマット文字列が次のように書き換えられたとすると、
間違った引数の順番
フォーマット文字列における引数の 番号付け/交換
をサポートしています。
]]>
ここで、問題が発生します。フォーマット文字列における置換指示子の順番は、
コードにおける引数の順番と一致していません。
だからといってコードを変更するのではなく、
むしろ置換指示子が参照するフォーマット文字列のほうで指示を行う方が望ましいでしょう。
フォーマット文字列を次のように書き換えてみましょう。
順序付きの置換指示子
]]>
こうすることによるもうひとつの利点は、
同じ置換指示子を複数回使用する際にコードに引数を追加せずにすむことです。
置換指示子を繰り返し使う
]]>
引数の交換を使うときには、
位置指定子 n$
をパーセント記号 (%) の直後に置かなければならず、
間に他の指定を入れてはいけません。次に例を示します。
パディング文字を指定する
]]>
&example.outputs;
他の指定子と一緒に位置指定子を使う
]]>
&example.outputs;
sprintf: 整数を0埋めする
]]>
sprintf: 通貨をフォーマットする
]]>
&example.outputs;
sprintf: 科学的記法
]]>
&example.outputs;
&reftitle.seealso;
printf
fprintf
vprintf
vsprintf
vfprintf
sscanf
fscanf
number_format
date