[#47049] fileのopenに関する動作についての質問 — 高橋作郎 <sakurou3960@...>

はじめまして。

14 messages 2010/05/04

[ruby-list:47051] Re: fileのopenに関する動作についての質問

From: 高橋作郎 <sakurou3960@...>
Date: 2010-05-04 12:48:28 UTC
List: ruby-list #47051
2010年5月4日21:18 Hideo Konami <konami@kyoto-wu.ac.jp>:

高橋です。
小波さんありがとうございます。
動作の確認をして理解できました!
while のループの中でもう一度読み込みが出来るのですね。
思いつきませんでした。。。ご教示ありがとうございます!

ちなみに、このやり方でループを作成するとdatファイルが奇数行しかないと
エラーが出るという考え方でよろしいでしょうか?
(datファイルを奇数行にして実行してみると確かにエラーが出ました。その原因は
whileに与えた line=f.gets が偽になるからですか?)


> 小波と申します。
>
> f.gets はファイルから1行*ずつ*読み込んでいきます。
> そこで
> while line = f.gets
> ではファイルからの1行読み込みを試みて,成功したらループに
> 入ります。そこで
> ans[n] = f.gets.chomp
> が実行されるとまた1行読み込みが実行されるわけですから,
> 結局2行が読み込まれるわけですね。
>
> こういうときには,ソースの中に,f.gets の動作を確かめる
> ための行を挿入して考えてみましょう。
>
> puts line を2行目の後に,
> puts ans[n] を4行目の後に。
>
> 他にも確かめる方法はいろいろあるでしょう。irb を使うのも
> いい考えだと思います。とにかくいろいろと工夫してプログラ
> ムをいじりましょう。

In This Thread