我尝试使用此代码写入文件:
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()来实现这一点?尝试我的代码,你会看到我的意思
谢谢。
答案 0 :(得分:2)
gets
方法会带来任意数量的文字,但会在您点击“Enter”时(或STDIN
收到\n
后)终止。此输入记录分隔符存储在全局变量$/
中。如果更改脚本中的输入分隔符,gets
方法实际上会将“输入”键换成您更改全局变量的任何内容。
$/ = '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:
这是
multilined
文本
答案 1 :(得分:0)
如果你不使用.chomp(),每当你写一个新行时都会添加\ n字符,如果你将它保存到文件中它也会有一个新行。 .chomp()从输入的末尾删除那些转义字符。
如果这不回答你的问题,我很抱歉我不明白。