为什么puts()不打印在一行?

这是一段代码:

def add(a, b) a + b; end print "Tell number 1 : " number1 = gets.to_f print "and number 2 : " number2 = gets.to_f puts "#{number1}+#{number2} = " , add(number1, number2) , "\n"` 

当我运行它时,我的结果分布在几行:

 C:\ Users \ Filip> ruby​​ ext1.rb
告诉1:2
和2:3
 3.0 + 3.0 =
 5


 C:\用户\菲利普>

为什么puts()打印在一行中,如何将输出保持在一行?

gets()包括换行符。 gets.strip替换它。更新:您更新了代码,因此如果您对使用浮点数感到满意,则不再相关。)

puts()为每个尚未以换行符结尾的参数添加换行符。 您的代码相当于:

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

你可以用print替换puts

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

或更好:

 puts "#{number1}+#{number2} = #{add(number1, number2)}" 

Puts在输出结尾添加换行符。 打印没有。 试试打印。

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

您可能还想用gets.chomp替换gets

 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 

因为puts打印一个字符串后跟一个换行符。 如果您不想换行,请改用print