引き続き筑波大学の問題でございます。また苦手なwhile true
です。
[Ruby-43]
io = open("foo.txt", "r")
while true
line = io.gets
print(line)
if line == nil
break
end
end
io.close
while true
の何がtrueやねん。line〜endまでがtrueなら、という解釈でいいんでしょうか……。
ioでテキストファイルを開いて、lineでテキストファイルの中身を読み取って出力。nilはテキストファイルの中身がこれ以上読み取れませんでしたよ、という時点でbreakする。というわけで厳密な仕組みはともかく動くことは分かった。
と、ここまでやってみて2つのファイルを同時に開いて出力(入力?)するにはどうしたらいいんだろう。
io = open("foo.txt", "hoge.txt", "r")
と続けてファイル名を指定してはダメなようだ。というわけで、
io = open("foo.txt", "r")
io2 = open("foxo.txt", "r")
while true
line = io.gets
line2 = io2.gets
print(line, line2)
if line && line2 == nil
break
end
end
io.close
io2.close
と書いてみたら、最初のファイルを1行目しか読んでくれないという始末。line && line2
のところがおかしいのかな?