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

换行符.txt:

这是
多行
文本

于 2013-01-09T18:59:22.933 回答
0

如果您不使用 .chomp() ,则每当您写一个新行时都会添加 \n 字符,如果您将其保存到文件中,它也会有一个新行。.chomp() 从输入的末尾删除那些转义字符。

如果这不能回答你的问题,我很抱歉我不明白。

于 2013-01-09T18:21:50.473 回答