2010-12-11 22 views
1

私はルビーの初心者です。私は、ユーザーに彼の名前を尋ね、それを元に戻す次のコードを持っています。ルビーの印刷機能

print 'Enter your name : ' 
name = gets() 
print("Hey,#{name} !") 

私は名前としてジョン・ドウを入力した場合putsとは異なり

Hey,John Doe 
! 

printを次のように、出力が自動的に出力した後に改行を入れていませんが、私はそのような場合に気づきました#{name}の後に入力するものは、新しい行に印刷されます。なぜこれはそうですか?

+2

ヒント: 'name'にはあなたが入力した(キーを押した)が、期待していない文字が含まれています。 –

+0

ああ、改行文字! :D ...ありがとう! :) – James

答えて

5

gets()は、Enterキーを押して改行を返しています。それをトリミングするにはname = gets().chompを試してください。

1

OS X上でirbで実行している場合は、「John Doe」と入力してcontrol + dを2回押してもかまいません。

私はWindowsの同等のコントロール+ zと思います。

また、print name.inspectを実行した場合は、nameに改行が含まれていることがわかります。"John Doe\n"が印刷されます。

関連する問題