成瀬さん

回答ありがとうございました.過去ログ [ruby-list:45988]のスレッド を呼んで
理解しました.

相手が通常のファイルの場合は rewind して読み直せば良さそうですが,
$stdin の場合はどうすればよいのでしょう?こういうことはやってはいけない
ということでしょうか?

そういえば,Universal Newline がどうしたこうしたというエラーメッセージを時々
見ていたのですが,これは一体何のことだろうと思っていました.


2009/07/12 20:02 に NARUSE, Yui<naruse / airemix.jp> さんは書きました:
> 成瀬です。
>
> 結論から言うと、読み込みの途中でset_encodingを使ってはいけません。
>
> 詳細は[ruby-list:45988]のスレッドを見てください。
>
> 大田黒俊夫 wrote:
>> # $stdin.set_encoding("Shift_JIS") として標準入力の文字コードを変更すると,
>> # その直後の $stdin のストリームにはすでに \n が入っていて,$stdin からの
>> # 入力を待たずに,ただちに次の行に制御を移し,終了してしまいます.
>
> --
> NARUSE, Yui  <naruse / airemix.jp>

-- 
俊(とし)
* 望湖庵日記 http://griffin.cocolog-nifty.com/lakesidedairy/