< :前の番号
^ :番号順リスト
> :次の番号
P :前の記事(スレッド移動)
N :次の記事
|<:前のスレッド
>|:次のスレッド
^ :返事先
_:自分への返事
>:同じ返事先を持つ記事(前)
<:同じ返事先を持つ記事(後)
---:分割してスレッド表示、再表示
| :分割して(縦)スレッド表示、再表示
~ :スレッドのフレーム消去
.:インデックス
..:インデックスのインデックス
Diceです。
ruby 1.9.1 での IO について、よく分からない動作を見つけたのですが
私の勘違いなのか ruby 本体のバグなのか、今ひとつ判断がつきかねるので
こちらで質問させてください。
環境は ruby 1.9.1 (2009-01-30 revision 21907) [i386-mswin32] です。
次のようなスクリプトをファイルに保存して……
--------
open('test.txt', 'w'){|f|
f.write(<<TEXT)
line 1
line 2
TEXT
}
open('test.txt', 'r:us-ascii'){|input|
puts "<ascii mode>"
p input.gets
p input.gets
p input.gets
input.rewind
p input.gets
input.set_encoding('us-ascii')
p input.gets
p input.gets
input.rewind
}
open('test.txt', 'rb:us-ascii'){|input|
puts "<binary mode>"
p input.gets
p input.gets
p input.gets
input.rewind
p input.gets
input.set_encoding('us-ascii')
p input.gets
p input.gets
input.rewind
}
--------
このスクリプトを ruby で実行すると、次のように出力されます。
--------
<ascii mode>
"line 1\n"
"line 2\n"
nil
"line 1\n"
"\n"
"line 2\n"
<binary mode>
"line 1\r\n"
"line 2\r\n"
nil
"line 1\r\n"
"line 2\r\n"
nil
--------
ここで ascii mode の出力5行目は、なぜ "line 2\n" ではなく "\n" なのでしょうか?
--------------------------------
Dice
tetradice+ruby / gmail.com