Newbe - strange behavior of print


#1

Hello folks, this is the scenario:
I tried to run the following code in EasyEclipse for Ruby IDE and
SciTE on WinXP
Both has the same behavior.

def main
print "Enter the number of employees: "
numEmp = gets
puts "The number of employees is:= " + numEmp.to_s
end

main

====================

The output is nothing ( it appears that the program hangs-on for a
while ), then if go to the console and I push the ENTER key it appears
the "Enter the number of employees: " and suddenly the program
terminates.

What I’m doing wrong?, I tried to follow the instructions from several
books ( David Black’s “Ruby for Rails” and Dave T. “Programming
Ruby” ) and both indicates that the kind of code that I wrote should
work.

Any help would be very appreciated.
Regards


#2

caof2005 wrote:

books ( David Black’s “Ruby for Rails” and Dave T. “Programming
Ruby” ) and both indicates that the kind of code that I wrote should
work.

Have you, per chance, tried to invoke your script from the command line?
I know that SciTE needs to be patched in one way or another to allow for
input. I can’t judge Eclipse in that regard, as I don’t use it.


Phillip “CynicalRyan” Gawlowski
http://cynicalryan.110mb.com/

Rule of Open-Source Programming #9:

Give me refactoring or give me death!


#3

On Apr 11, 2:24 am, Phillip G. removed_email_address@domain.invalid
wrote:

end
What I’m doing wrong?, I tried to follow the instructions from several

Rule of Open-Source Programming #9:

Give me refactoring or give me death!

Phillip:

Yes I tried from within irb… and it works perfectly, however when I
use either SciTE or EasyEclipse the behavior is awkward.

Regards
Carlos


#4

Phillip:

Yes I tried from within irb… and it works perfectly, however when I
use either SciTE or EasyEclipse the behavior is awkward.

Regards
Carlos

Carlos -

I can’t speak to SciTE, but Eclipse (specifically with RDT) has an issue
with the syncing of input/output.

See the first question at
http://rubyeclipse.sourceforge.net/faq.rdt.html for information about
resolving the issue. Or just run from the command line.


#5

On Apr 11, 3:36 am, Björn Paetzel removed_email_address@domain.invalid wrote:

puts "The number of employees is:= " + numEmp.to_s
end

That should help. :slight_smile:

Bjorn:

Thanks it worked great!
However is it possible you can explain me in general terms why this
behavior happens?
I mean, besides trying in EasyEclipse and SciTE I tried the same code
in irb, and surprisingly it works perfectly (no need to flush)!

Regards


#6

On Wednesday 11 April 2007 09:25, caof2005 wrote:

puts "The number of employees is:= " + numEmp.to_s
in irb, and surprisingly it works perfectly (no need to flush)!

Regards

Irb have Readline support and also automatically flushes everything -
just in
case :] by deafault print don’t flush - if you want flushing - use puts