形式
printf format [argument …]
説明
printf は、argument オペランドを format オペランドに従ってフォーマットして標準出力に書き出します。
format は書式ストリングです。これは、次の
argument を出力に変換または追加するための
変換仕様によって構成されます。
format には、円記号エスケープ・シーケンスを含めることができます。これらの変換は、ANSI C 標準で使用されるものと類似しています。変換仕様の形式は、以下のとおりです。
%[flag][width]
[precision][char]
ここで
flag は、以下のいずれかです。
- -
- フィールドを左寄せにします。デフォルトは右寄せです。
- +
- 常に、前に符号 (+ または -) を付けます。
- スペース
- ストリングの先頭に 1 桁の文字位置を確保します。これは、負符号用 (負数の場合) またはスペース用 (正数の場合) です。フラグとして space および - の
両方があった場合、space フラグは無視されます。
- #
- 8 進値の前に 0 を付け、16 進値の前に 0x
または 0X を付けます。浮動小数点値の場合、小数点が必ず表示されるようになり
ます (その後に続く文字がない場合も同じです)。
- 0
- 数値に先行ゼロを埋め込みます。フラグとして 0 および - の両方があった
場合、0 フラグは無視されます。
width は、出力フィールドの最小フィールド幅です。変換された値が最小幅より短い場合、printf はそれをスペースまたはゼロで埋めます。
ストリングの場合、
precision はストリングから印刷する
バイトの最大数です。数の場合、精度は
浮動小数点に対して小数点の右側に印刷する
数字の桁数です。
width または
precision は、
* として指定することができます。その場合、値は次の引数から読み取られます。これは整数でなければなりません。例えば、以下のとおりです。
printf "%*.*d¥n" 20 10 200
は、以下と同等です。
printf "%20.10d¥n" 200
変換文字
char は、以下のいずれかです。
- b
- 円記号エスケープ・シーケンスを含むストリング。
- c
- 整数値の単一文字。ストリングの先頭文字。
- d
- 10 進整数。
- e,E
- 浮動小数点 (科学計算表記)。
- f,F
- 浮動小数点。
- g,G
- e および f の短縮形 (無意味なゼロを抑制する)。
- i
- 10 進整数。
- o
- 符号なしの 8 進整数。
- s
- ストリング。
- u
- 符号なしの 10 進整数。
- x,X
- 符号なしの 16 進整数。
format 内の位置よりも多くの引数がある場合、残りの引数に対して、もう一度 format ストリングが
適用されます。format ストリング内の位置よりも引数が少ない場合
は、printf は残りの位置をヌル・ストリング (文字
フィールド) またはゼロ (数値フィールド) で埋めます。
注意
POSIX.2POSIX.2 printf 機能は (その基礎に
なっている C 言語の printf() のよう
に)、%c 変換、あるいは精度を指定した %b また
は %s を使用した場合、2 バイト文字をうまく処理できません。文字セット内に 2 バイト文字がある場合、これらの機能は注意して使用してください。
2 バイト環境では、通常の円記号エスケープ文字は正しく処理さ
れ (要求された
通り printf シフト状態で) ますが、8 進数および 16 進数エスケープ文字
は状態を変更しません。この動作は、シフト・ロック環境の場合に重要です。例えば、8 進エスケープ文字にシフトイン文字が含まれている場合、シフトアウト文字もあることを確認するのは、ユーザーの責任になります。円記号さらに、2 バイト文字の直後に来た 8 進または 16 進の
円記号エスケープ文字は、シフト状態では処理されない場
合があります。
2 バイト文字環境の詳細は、2 バイト文字セット (DBCS) の使用を参照してください。
ローカライズ
printf は、以下のローカライズ環境変数を使用します。
- LANG
- LC_ALL
- LC_CTYPE
- LC_MESSAGES
- LC_NUMERIC
- LC_SYNTAX
- NLSPATH
詳しくは、ローカライズを参照してください。
終了値
- 0
- 正常終了
- >0
- 以下のいずれかによる失敗の数値。
- 書式指定が欠落している
- format ストリングが受け付けない引数 (すなわち、% がない) が
指定された
- 整数引数が正しくない
- 浮動小数点引数が正しくない
移植性
POSIX.2, X/Open 移植性ガイド, UNIX System V.
%F 書式、および * を幅または精度として
取り扱うことは、POSIX 標準の拡張です。