Gets does not block (STDOUT.flush issue?)

File: test.rb

STDOUT.sync=true

puts “File exists. Are you sure?”
STDOUT.flush
answer=gets.chomp
puts answer

executing this file with any parameters (e.g. ./test.rb bla) yields
this:

[:~/ruby]$ ./test.rb bla
File exists. Are you sure?
./test.rb:9:in `gets’: No such file or directory - “bla” (Errno::ENOENT)
from ./test.rb:9
[:~/ruby]$

What gives?!

On Fri, Jun 01, 2007 at 01:59:33PM +0900, Ivan B wrote:

[:~/ruby]$ ./test.rb bla
File exists. Are you sure?
./test.rb:9:in `gets’: No such file or directory - “bla” (Errno::ENOENT)
from ./test.rb:9
[:~/ruby]$

What gives?!

You need:

answer=$stdin.gets.chomp

Ohterwise, gets tries to read from file(s) whose name(s) are given on
the
command line.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs