Why doesn't puts() print in a single line?

后端 未结 3 1328
生来不讨喜
生来不讨喜 2021-01-22 03:10

This is a piece of code:

def add(a, b) 
  a + b;
end

print \"Tell number 1 : \"
number1 = gets.to_f

print \"and number 2 : \"
number2 = gets.to_f

puts \"#{num         


        
相关标签:
3条回答
  • 2021-01-22 03:47

    Because puts prints a string followed by a newline. If you do not want newlines, use print instead.

    0 讨论(0)
  • 2021-01-22 03:55

    gets() includes the newline. Replace it with gets.strip. (Update: You updated your code, so if you're happy working with floats, this is no longer relevant.)

    puts() adds a newline for each argument that doesn't already end in a newline. Your code is equivalent to:

    print "#{number1}+#{number2} = ", "\n",
          add(number1, number2) , "\n",
          "\n"
    

    You can replace puts with print:

    print "#{number1}+#{number2} = " , add(number1, number2) , "\n"`
    

    or better:

    puts "#{number1}+#{number2} = #{add(number1, number2)}"
    
    0 讨论(0)
  • 2021-01-22 04:08

    Puts adds a newline to the end of the output. Print does not. Try print.

    http://ruby-doc.org/core-2.0/IO.html#method-i-puts

    You might also want to replace gets with gets.chomp.

    puts "After entering something, you can see the the 'New Line': "
    a = gets
    print a
    
    puts "After entering something, you can't see the the 'New Line': "
    a = gets.chomp
    print a
    
    0 讨论(0)
提交回复
热议问题