-3

このコードを使用してファイルに書き込もうとしています:

  puts "-------------------- TEXT-EDITOR --------------------"
def tor(old_text)
  old_text = gets.chomp #
end


$epic=""

def torr(input)

  tore=  $epic += input + ", "

File.open("tor.txt", "w") do |write|
  write.puts tore
  end
end



loop do
  output = tor(output)
  torr(output)
end

ruby プログラミングの究極のガイドを読みましたが、新しい行を作成したい場合は、File.open 使用する必要があります"line one", "line two 。gets.chomp()? 私のコードを試してみてください。ありがとうございます。

4

2 に答える 2

2

このgetsメソッドは任意の量のテキストを取り込みますが、'Enter' を押すと (または がSTDINを受け取ると\n) 終了します。この入力レコード セパレータは、グローバル変数に格納されます$/。スクリプトで入力セパレーターを変更すると、getsメソッドは実際に「Enter」キーを、グローバル変数を変更したものと交換します。

$/ = 'EOF' # Or any other string
lines = gets.chomp
> This is
> multilined
> textEOF
lines #=> 'This is\nmultilined\ntext'

必要なものを入力し、最後に「EOF」と入力します。EOF を「確認」すると、getsメソッドが終了します。このchompメソッドは、実際には文字列 'EOF' を末尾から取り除きます。

次に、これをテキスト ファイルに書き込むと、\n新しい行に変換されます。

File.open('newlines.txt', 'w') {|f| f.puts lines}

newlines.txt:

これは
複数行
のテキストです

于 2013-01-09T18:59:22.933 に答える
0

.chomp() を使用しない場合、改行を書き込むたびに \n 文字が追加されます。これをファイルに保存すると、改行も含まれます。.chomp() は、入力の末尾からこれらのエスケープ文字を削除します。

これがあなたの質問に答えない場合は、申し訳ありませんが、理解できません。

于 2013-01-09T18:21:50.473 に答える