入出力

なんらかの入力に対して加工を施し,結果を出力する。形こそ違え ソフトウェアは原則としてそのような動きを持つ。Rubyで作成する コンソールプログラムでの入出力の方法をまとめる。

コマンドライン引数

Rubyプログラム起動時に,そのプログラム名の後ろに指定された文字列は 単語ごとに区切られた配列として変数 ARGV に入る。

./program.rb a "b c" d\ ef ghi

としたときのARGVは

ARGV[0]ARGV[1] ARGV[2]ARGV[3]
"a""b c" "d ef""ghi"

となる。コマンドラインに指定した文字列の単語分解は シェルが規則に基づいて行なっている。

Rubyの場合はコマンドライン引数の個々をファイル名と見なし, そのファイルの中味全体を結合したファイル入力を自動的に利用することができる。 これは変数 ARGF を介して利用する。コマンドライン引数が何もない場合の ARGF は標準入力を指すオブジェクトとなる。

getsメソッドを単体で使用することは ARGF からの読み込みを意味する。つまり,

while line=gets
  ...
end

は,

while line=ARGF.gets
  ...
end

と同じである。

ファイル

ファイル入出力の復習


本日の目次

yuuji@e.koeki-u.ac.jp