为什么 puts() 不打印在一行中? [英] Why doesn't puts() print in a single line?

查看:46
本文介绍了为什么 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?

解决方案

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)}"

这篇关于为什么 puts() 不打印在一行中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆