表示: Delphi C++
表示設定

printf の書式指定子

提供:RAD Studio
移動: 案内, 検索

printf、wprintf への移動


出力書式指定子の形式は以下のとおりです。

% [flags] [width] [.prec] [F|N|h|l|L] type_char

各書式指定子はパーセント文字(%)で始まります。

省略可能な書式文字列構成要素

出力書式設定は、書式文字列に含まれている省略可能な文字、指定子、修飾子で一般に以下のように制御されます。


構成要素 省略可能/必須 意味/機能

[flags]

(省略可能)

以下のものが任意の順序および組み合わせで現れることがあります。

  • - = 結果を左詰めにし、右側を空白で埋めます。 指定されない場合は、結果が右詰めされ、左側がゼロまたは空白で埋められます。
  • + = 符号付きの変換結果は常にプラス記号(+)またはマイナス記号(-)で始まります。
  • 空白 = 値が負でない場合、出力はプラス記号ではなく空白で始まります。負の値は依然としてマイナス記号で始まります。
  • # = 引数が代替形式で変換されることを指定します。
メモ: プラス記号(+)と空白()が両方とも指定された場合は、プラス記号が優先します。

[width]

(省略可能)

幅指定子は、出力値のフィールド幅の下限を設定します。

幅の指定方法は以下のいずれかです。

  • 10 進数字の文字列を使った直接指定
  • アスタリスク(*)を使った間接指定

幅指定子にアスタリスクを使用する場合、関数呼び出しにおける次の引数(int でなければなりません)で出力フィールド幅の下限を指定します。

フィールド幅が指定されていないか小さい場合でも、フィールドの切り捨ては行われません。 変換結果がフィールド幅より長い場合、変換結果が収まるようにフィールドが拡張されます。

出力幅への影響

n = 少なくとも n 文字が出力されます。 出力値の文字数が n より少ない場合、出力は空白で埋められます(左詰めのフラグが指定されている場合は右側が埋められ、それ以外の場合は左側が埋められます)。

0n = 少なくとも n 文字が出力されます。 出力値の文字数が n より少ない場合、出力の左側がゼロで埋められます。

'*' = 引数リストに幅指定子が指定されます。これは、書式設定の対象となる実際の引数より先に現れる必要があります。

[prec]

(省略可能)

精度指定子。 出力する最大文字数。整数の場合は、出力する最小桁数。

[F|N|h|l|L]

(省略可能)

各種 printf 関数で次の入力引数 arg[f] がどう解釈されるかは、以下の修飾子で決まります。

プレフィックス 書式指定子 指定される型

F

p s

far ポインタ

N

n

near ポインタ

h

d i o u x X

short int

l

d i o u x X

long int

l

e E f g G

double

L

e E f g G

long double

L

d i o u x X

__int64

h

c C

シングルバイト文字

l

c C

ワイド文字

h

s S

シングルバイト文字列

l

s S

ワイド文字列

すべての printf 関数で対応する入力引数 arg のデータ型がどう解釈されるかは、これらの修飾子に左右されます。 F と N はどちらも入力変数 arg を再解釈します。 通常、%p 変換、%s 変換、%n 変換のいずれかの場合、arg はメモリ モデルのデフォルト サイズのポインタです。 h、l、L は、数値データ入力引数のデフォルト サイズを解除して再設定します。 h も l もポインタ(p、n)型には影響を及ぼしません。

type_char

(必須)

型文字


関連項目

他言語版