それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

printf のフォーマットを使って覚える。

printf のフォーマットの例

printf で文字の整列などをすれば楽ちんだろうとは思うんだけど、なかなか覚えきれないので、いくつか例を以て覚えておきたい。

takuya@Desktop$ ruby /Users/takuya/printf_examples.sh
prinft %d      32 => '32   '  # 数字
prinft %5d     32 => '   32'  # 右寄せ
prinft %-5d    32 => '32   '  # 左寄せ
prinft %04d    32 => '0032 '  # 0埋め
prinft %-05d   32 => '32   '  # 0埋め+左寄せ
prinft %+d     32 => '+32  '  # 符号(+)
prinft %+d    -32 => '-32  '  # 符号(-)
prinft %.1f   -32 => '-32.0'  # 小数桁1
prinft %.2f    32 => '32.00'  # 小数桁2
prinft %#x     32 => '0x20 '  # 16進数
prinft %#o     32 => '040  '  #  8進数
prinft %#b     32 => '0b100000'  #  2進数
prinft %#08b    7 => '0b000111'  #  2進数0埋め

使ったソースコード

#!/usr/bin/env ruby

formats = {
  '数字'    => [ "%d", 32 ],
  '右寄せ'  => [ "%5d", 32 ],
  '左寄せ'  => [ "%-5d", 32 ],
  '0埋め'   => [ "%04d", 32 ],
  '0埋め+左寄せ'   => [ "%-05d", 32 ],
  '符号(+)' => [ "%+d", 32 ],
  '符号(-)' => [ "%+d", -32 ],
  '小数桁1'  => [ "%.1f", -32 ],
  '小数桁2'  => [ "%.2f",  32 ],
  '16進数'  => [ "%#x",  32 ],
  ' 8進数'  => [ "%#o",  32 ],
  ' 2進数'  => [ "%#b",  32 ],
  ' 2進数0埋め'  => [ "%#08b",  7 ],
  # '金額'  => [ "%'d",  32 ], not supported

}


for k, e in formats do 

  f = e[0]
  v = e[1]

  printf( "prinft %-5s %4s => '%-5s'  # %-5s \n" , f, v , f%v, k   )

end

関連資料

prinft %s は文字列の長さが指定できる! - それマグで!