なかだです。

At Thu, 23 Dec 2004 08:31:15 +0900,
Tomokiyo Nomura wrote in [ruby-list:40451]:
> 次のようなプログラムで最初にリターンキーだけを押すと default string
> が消えてしまいます。何か入力した後は消えません。Ruby 1.8.1 です。

「消えてしまう」というのが「" >"の前に何も出力されなくなる」と
いう意味なら、コーディングした通りの動作です。getsがnilを返すの
は標準入力がEOFになったときで、空行とEOFはまったくの別物です。

> text = "default string"
> 
> while (true)
>    print "#{text} > "
>    if (s = gets) != nil
       s.chomp!
       if not s.empty?
>       text = s.chomp
       end
>    end
> end

  break if not (s = gets)
とか
  while (print "#{text} > "; s = gets)
としないとEOFも無視してしまいますが。


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦