printf — 形式化された出力を書き出す
形式
printf format [argument …]
説明
printf は、argument オペランドを format オペランドに従ってフォーマットして標準出力に書き出します。
%[flag][width]
[precision][char]
ここで flag は、以下のいずれかです。- -
- フィールドを左寄せにします。デフォルトは右寄せです。
- +
- 常に、前に符号 (+ または -) を付けます。
- スペース
- ストリングの先頭に 1 桁の文字位置を確保します。これは、負符号用 (負数の場合) またはスペース用 (正数の場合) です。フラグとして space および - の 両方があった場合、space フラグは無視されます。
- #
- 8 進値の前に 0 を付け、16 進値の前に 0x または 0X を付けます。浮動小数点値の場合、小数点が必ず表示されるようになり ます (その後に続く文字がない場合も同じです)。
- 0
- 数値に先行ゼロを埋め込みます。フラグとして 0 および - の両方があった 場合、0 フラグは無視されます。
width は、出力フィールドの最小フィールド幅です。変換された値が最小幅より短い場合、printf はそれをスペースまたはゼロで埋めます。
printf "%*.*d¥n" 20 10 200
は、以下と同等です。printf "%20.10d¥n" 200
- 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) の使用を参照してください。
ローカライズ
- LANG
- LC_ALL
- LC_CTYPE
- LC_MESSAGES
- LC_NUMERIC
- LC_SYNTAX
- NLSPATH
詳細については、ローカライズを参照してください。
終了値
- 0
- 正常終了
- >0
- 以下のいずれかによる失敗の数値。
- 書式指定が欠落している
- format ストリングが受け付けない引数 (すなわち、% がない) が 指定された
- 整数引数が正しくない
- 浮動小数点引数が正しくない
移植性
POSIX.2, X/Open 移植性ガイド, UNIX System V.
%F 書式、および * を幅または精度として 取り扱うことは、POSIX 標準の拡張です。
関連情報
echo, print