2015-02-24 49 views
0

在这个代码中,我在三个地方有puts,其中第一个字符串和第二个字符串在不同行中打印变量。但第三个在同一行。为什么字符串不在红宝石的同一行

def calliee (name,game) 
     #puts("#{name}#{game} he might be a bad guy") 
     return " he might be a bad guy #{name}#{game}" 
    end 
    def mymethod(name) 
     puts("enter your last name") 
     ss=gets() 
     #return "#{name}"+"#{ss}"+"he might be a bad guy" 
     calliee(name,ss) 
    end 
    puts("enter tour first name") 
    tt=gets() 
    #ww=mymethod(tt) 
    yy=mymethod(tt) 
    puts(yy) 
    puts("#{tt} is 1st name") 
    puts("prabhu "+"#{2+3}"+"#{4+5}") 

我想要一切都在同一行,我需要知道为什么会发生这种情况。请帮忙

+1

您需要从'yy'和'tt'中去掉换行符,以便将它们全部放在一行上。获取输入信息,请参阅[Ruby教程](http://ruby-doc.org//docs/Tutorial/part_02/user_input.html)。 – pstrjds 2015-02-24 06:39:45

回答

4

​​给你一个字符串,\n加到字符串的末尾。这导致在多行输出

要使您的输出符合您的要求,您需要使用#chomp方法,如gets.chomp

3

添加到奥雅纳的回答是:

puts增加了一个新行到输出端。 print没有。因此,您可能还想用print替换puts以将所有输出都排成一行。

+0

我以为OP确实知道'#puts'不是'#gets' ..:p – 2015-02-24 06:51:01

+0

我的回答是......“以防万一”...:P – shivam 2015-02-24 06:54:28

+0

Hehehe ...好的 – 2015-02-24 06:55:58