为什么 puts() 不打印在一行中? [英] Why doesn't puts() print in a single line?
本文介绍了为什么 puts() 不打印在一行中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是一段代码:
def add(a, b)a + b;结尾打印告诉数字 1:"number1 = gets.to_f打印和数字 2:"number2 = gets.to_fputs "#{number1}+#{number2} = " , add(number1, number2) , "\n"`
当我运行它时,我的结果分布在几行中:
<前>C:\Users\Filip>ruby ext1.rb告诉数字 1 : 2和数字 2 : 33.0+3.0 =5.0C:\用户\菲利普>为什么 puts()
不在一行打印,如何将输出保持在一行?
解决方案
(更新:你更新了你的代码,所以如果你喜欢使用浮点数,这不再相关.)gets()
包含换行符.用 gets.strip
替换它.
puts() 为每个添加一个换行符尚未以换行符结尾的参数.您的代码相当于:
print "#{number1}+#{number2} = ", "\n",add(number1, number2) , "\n","\n"
您可以将 puts
替换为 print
:
print "#{number1}+#{number2} = " , add(number1, number2) , "\n"`
或更好:
puts "#{number1}+#{number2} = #{add(number1, number2)}"
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 "#{number1}+#{number2} = " , add(number1, number2) , "\n"`
When I run it, my results are spread over several lines:
C:\Users\Filip>ruby ext1.rb Tell number 1 : 2 and number 2 : 3 3.0+3.0 = 5.0 C:\Users\Filip>
Why doesn't puts()
print in a single line, and how can keep the output on one line?
解决方案
(Update: You updated your code, so if you're happy working with floats, this is no longer relevant.)gets()
includes the newline. Replace it with gets.strip
.
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)}"
这篇关于为什么 puts() 不打印在一行中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文