5部 関数リファレンス

printf

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 も参照してください。

関連記事