printf [FILEHANDLE] FORMAT, LIST
FORMATで指定されたフォーマットに従ってLISTを整形し、ファイルハンドルFORMATに出力します。FORMATを省略すると、現在セレクトされている出力ファイルハンドルに出力されます。
printfは選択されたファイルハンドルに % フォーマット文字で整形した文字列を出力します。返却値は、printfが正常に終了したら1、異常があったら 0 です。
printfの使い方
printf "%02d", 2; > 02
フォーマット指定子
| 文字 | 説明 |
|---|---|
| %c | 文字 -Character |
| %d | 10進数 -Deximal |
| %e | 浮動少数(指数形式) -Exponential |
| %E | 浮動少数(大文字のEを使った指数形式) |
| %f | 浮動小数(固定小数点形式) -Floating |
| %g | 浮動小数(浮動少数または指数形式のうち、少ないスペースで表現できる方) |
| %G | %g の指数表示をEにしたもの |
| %ld | 倍精度10進数 -Long |
| %lo | 倍精度8進数 |
| %lu | 倍精度符号なし10進数 |
| %lx | 倍精度16進数 |
| %n | すでに出力した文字数を次の変数に格納 |
| %o | 8進数 -Octal |
| %p | ポインタ (16進数での値のアドレス) |
| %s | 文字列 -String |
| %u | 符号なし10進数 -Unsigned |
| %x | 符号なし16進数 -heXadecimal |
| %X | %x と同じだが大文字を使う |
修飾子
| 文字 | 説明 |
|---|---|
| -(%-nd) | 左寄せで表示。n は文字列の長さ。 |
| # | 8進の整数は0で始まり、16進の整数は0xで始まるように表示 |
| (%nd) | 数値変数の10進展開 「n」は文字列の長さ。文字数が足りない場合はスペースで埋める。 |
| (%n.mf) | 小数点付き数値の10進展開。n は文字列の長さ、m は少数点以下の桁数を指定。 |
| +(%+d) | 符号付き10進展開。符号+または-をつけて表示 |
| 0(%0nd) | 文字数が足りない場合は0で埋める。n は文字列の長さ。 |
現在の日時を出力
# 現在日時を取得
( $sec , $min , $hour , $day , $mon , $year ) = localtime( time );
$mon++;
printf("現在の日時は:%02d年%02d月%02d日の %02d:%02d:%02d です",
$year, $mon, $day, $hour, $min, $sec );
> 現在の日時は:96年01月03日の 09:03:02 です
sprintf も参照してください。