Please Help I'm new in Ruby -- Input Problem

Hi,

I'm interested to learn this language. I'm using Eclipse with Ruby
plugin. I encountered this problem. I place this code (got from an
internet site):

def addtwo(a, b)
       a + b; # return a + b
end

print "Please enter number 1 : ";

val1 = gets;
print "Please enter number 2 : ";
val2 = gets;
print "Answer : " , (val1.to_i + val2.to_i), "\n";

It actually works! But the this is when I run this, the console doesn't
show the first print (print "Please enter number 1 : ":wink: it waits for me
to place a number, then another number before it shows the print. See
below:

1
2
Please enter number 1 : Please enter number 2 : Answer : 3

Please help me.
Thank you!
Nolly

···

--
Posted via http://www.ruby-forum.com/.

Nolly Mejia wrote:

Hi,

I'm interested to learn this language. I'm using Eclipse with Ruby
plugin. I encountered this problem. I place this code (got from an
internet site):

def addtwo(a, b)
       a + b; # return a + b
end

print "Please enter number 1 : ";

val1 = gets;
print "Please enter number 2 : ";
val2 = gets;
print "Answer : " , (val1.to_i + val2.to_i), "\n";

Whatever site this code came from can be considered untrustworthy.
Clearly, whoever wrote it doesn't know enough about Ruby to know that
it's considered poor style to put semicolons at the end of lines. And
if they don't know something that basic, what else are they screwing up?

It actually works! But the this is when I run this, the console doesn't
show the first print (print "Please enter number 1 : ":wink: it waits for me
to place a number, then another number before it shows the print. See
below:

1
2
Please enter number 1 : Please enter number 2 : Answer : 3

Please help me.

Your console output is probably being buffered by line. Try putting a
\n in the string and see if that solves the problem.

Thank you!
Nolly

Best,

···

--
Marnen Laibow-Koser
http://www.marnen.org
marnen@marnen.org
--
Posted via http://www.ruby-forum.com/\.

Your console output is probably being buffered by line. Try putting a
\n in the string and see if that solves the problem.

Thank you!
Nolly

Best,
--
Marnen Laibow-Koser
http://www.marnen.org
marnen@marnen.org

Hi Marnen,

Thank you for helping I really appreciate, but I still have the same
problem.
Here's the output when I placed \n

3
2
Please enter number 1 :
Please enter number 2 :
Answer : 5

I have Final Report on my class, regarding aspiring programming
language. I hope some one can find way.

···

--
Posted via http://www.ruby-forum.com/\.

Try replacing print with puts

It does look as though your output is being buffered. Which is odd. You may need to add explicit STDOUT.flush after your print statements.

Matt

···

On Sat, 16 Jan 2010, Nolly Mejia wrote:

Your console output is probably being buffered by line. Try putting a
\n in the string and see if that solves the problem.

Thank you!
Nolly

Best,
--
Marnen Laibow-Koser
http://www.marnen.org
marnen@marnen.org

Hi Marnen,

Thank you for helping I really appreciate, but I still have the same
problem.
Here's the output when I placed \n

3
2
Please enter number 1 :
Please enter number 2 :
Answer : 5

I have Final Report on my class, regarding aspiring programming
language. I hope some one can find way.

Matthew K. Williams wrote:

···

On Sat, 16 Jan 2010, Nolly Mejia wrote:

http://www.marnen.org

Please enter number 1 :
Please enter number 2 :
Answer : 5

I have Final Report on my class, regarding aspiring programming
language. I hope some one can find way.

Try replacing print with puts

It does look as though your output is being buffered. Which is odd.
You may need to add explicit STDOUT.flush after your print statements.

Matt

Hi Matt,

GREAT! It works..thanks for helping me.=D
--
Posted via http://www.ruby-forum.com/\.

Most welcome. Hope you enjoy your exploration of Ruby!
Matt

···

On Sat, 16 Jan 2010, Nolly Mejia wrote:

Matthew K. Williams wrote:

On Sat, 16 Jan 2010, Nolly Mejia wrote:

http://www.marnen.org

Please enter number 1 :
Please enter number 2 :
Answer : 5

I have Final Report on my class, regarding aspiring programming
language. I hope some one can find way.

Try replacing print with puts

It does look as though your output is being buffered. Which is odd.
You may need to add explicit STDOUT.flush after your print statements.

Matt

Hi Matt,

GREAT! It works..thanks for helping me.=D