printf 書式指定子
Printf、wprintf への移動
出力書式指定子には、次の形式があります:
% [flags] [width] [.prec] [F|N|h|l|L] type_char
各書式指定子は、パーセント文字(%)で始まります。
省略可能な書式文字列の構成要素
これらは、出力書式の一般的な性質で、書式文字列の、省略可能な文字列、指定子、修飾子で制御されます:
構成要素 | 省略可能/必須 | 意味/機能 | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
[flags] |
(省略可) |
これらは、任意の順番および組み合わせで表示できます。
| ||||||||||||||||||||||||||||||||||||
[width] |
(省略可) |
幅指定子は、出力値のフィールド幅の下限を設定します。 幅の指定方法は以下のいずれかです。
幅指定子にアスタリスクを使用する場合、関数呼び出しにおける次の引数(int でなければなりません)で出力フィールド幅の下限を指定します。 フィールド幅が指定されていないか小さい場合でも、フィールドの切り捨ては行われません。 変換結果がフィールド幅より長い場合、変換結果が収まるようにフィールドが拡張されます。 出力幅への影響 n = 少なくとも n 文字が出力されます。 出力値の文字数が n より少ない場合、出力は空白で埋められます(左詰めのフラグが指定されている場合は右側が埋められ、それ以外の場合は左側が埋められます)。 0n = 少なくとも n 文字が出力されます。出力値の文字数が n より少ない場合、出力の左側がゼロで埋められます。 '*' = 引数リストに幅指定子が指定されます。これは、書式設定の対象となる実際の引数より先に現れる必要があります。 |
||||||||||||||||||||||||||||||||||||
[prec] |
(省略可) |
精度指定子。出力する最大文字数。整数の場合は、出力する最小桁数。 | ||||||||||||||||||||||||||||||||||||
[F|N|h|l|L] |
(省略可) |
各種 printf 関数で次の入力引数 arg[f] がどう解釈されるかは、以下の修飾子で決まります。
すべての printf 関数で対応する入力引数 arg のデータ型がどう解釈されるかは、これらの修飾子に左右されます。 F と N はどちらも入力変数 arg を再解釈します。 通常、%p 変換、%s 変換、%n 変換のいずれかの場合、arg はメモリ モデルのデフォルト サイズのポインタです。 h、l、L は、数値データ入力引数のデフォルト サイズを解除して再設定します。 h も l もポインタ(p、n)型には影響を及ぼしません。 | ||||||||||||||||||||||||||||||||||||
type_char |
(必須) |