目次

printf の書式指定(詳細)

書式指定文字

単に指定文字だけ書いた時は必要な幅が確保されて表示されます。

文字 使える型 用途 使用例
%c char 1文字を出力する "%c"
%s char * 文字列を出力する "%4s", "%-8s"
%d int, short 整数を10進で出力する "%4d","%-4d","%04d"
%u unsigned int, unsigned short 符号なし整数を10進で出力する "%4u","%04u"
%o int, short, unsigned int, unsigned short 整数を8進で出力する "%06o","%03o"
%x int, short, unsigned int, unsigned short 整数を16進で出力する "%02x", "%4x", %02X
%f float 実数を出力する "%8.2f"
%e float 実数を指数表示で出力する "%8.3e"
%g float 実数を最適な形式で出力する "%g"
%ld long 倍精度整数を10進で出力する "%-12ld"
%lu unsigned long 符号なし倍精度整数を10進で出力する "%12lu"
%lo long, unsigned long 倍精度整数を8進で出力する "%12lo"
%lx long, unsigned long 倍精度整数を16進で出力する "%08lx"
%lf double 倍精度実数を出力する "%10.3lf"

表示桁数の指定

表示桁数は<全体の幅>.<小数点以下の幅>で指定する。どちらか片方だけの指定でも良いし、まったく指定しなくても良い。指定がなければデフォルトが使用される。<小数点以下の幅>は、文字列の場合には最大文字数の意味になる。

指定例出力結果
printf("[%8.3f]", 123.45678);[ 123.456]
printf("[%15s]", "I am a boy.");[ I am a boy.]
printf("[%.6s]", "I am a boy.");[I am a]
printf("[%8.3e]", 1234.5678);[1.234e+3]

ゼロづめの指定

数値フィールドの場合に、ゼロ詰めを指定することができる。桁数の指定のまえにゼロを付加する。

指定例出力結果
printf("[%08.3f]", 123.45678);[0123.456]
printf("[%05d]", 1);[00001]

右詰・左詰の指定

デフォルトでは右詰なので、左詰にしたいときは桁数指定のまえにマイナスをつけなければならない。

指定例出力結果
printf("[%-15s]", "I am a boy.");[I am a boy. ]
printf("[%-8.3f]", 123.45678);[123.456 ]
printf("[%-5d]", 1);[1 ]

符号の指定

数値の表示は、デフォルトではプラス記号を出さないので、付けたいときは+を指定する。

指定例出力結果
printf("[%+5d]", 32);[ +32]
printf("[%+5d]", -32);[ -32]
printf("[%+8.3f]", 1.414);[ +1.414]

聖愛中学高等学校
http://www.seiai.ed.jp/
Oct. 2011