01  =begin
02  
03  lineno3.rb:
04  
05  (複数の)テキストファイルを読み込んで,各行の先頭に行番号を付加して
06  標準出力へ書き出す.
07  複数のファイルが指定されたとき行番号は通し番号となる.
08  
09  =end
10  
11  # 1行ずつ読みこんで配列に取り込む
12  in_lines = []
13  ARGF.each_line do |line|
14    in_lines.push(line)
15  end
16  
17  n = in_lines.size # 行数
18  d = Math.log10(n).floor + 1 # nの10進数での桁数
19  fmt = "%0#{d}d %s" # d桁の数字を付加する出力書式
20  
21  in_lines.each_with_index do |line,j|
22    STDOUT.puts fmt % [j+1,line]
23  end