向文件添加换行符

lak*_*m99 4 ruby file-io

你如何在 Ruby 中为文件写入换行符?

我写入文件的代码是:

[完整代码请求]

print("Word:")                                  #Prompt for word to scrambe
word = gets.chomp                               #Inputs word
wordLength = word.length                        #Gets word length
randomAmount = wordLength * wordLength          #Finds out how many ways to randomize
amountDone = 0                                  #Loop variable for process of randomizing
while amountDone != randomAmount
puts "---------------------------\n"
x = word.chars.to_a.shuffle                 #Changes each character to an array and randomizez them
File.open("output.txt","a+") {|f| f.write(x)}
puts "#{amountDone}:\n #{x}"                
amountDone += 1
puts "---------------------------\n"
end
puts "Type any key to continue..."
endWord = gets.chomp                            #Close program prompt
Run Code Online (Sandbox Code Playgroud)

——

File.open("output.txt","a+") {|f| f.write(x) }
Run Code Online (Sandbox Code Playgroud)

但问题是该行 ^ 处于循环中。这意味着它实际上被一遍又一遍地重复了很多次。因此,无论何时打开输出文件,输出都会被压缩在一起。所以我写的程序基本上是将单词打乱成尽可能多的方式。因此,如果我的输入是“Abcdefgh”,那么文件中的输出将显示为一行:

bdfcegAhhbgfeAcdhcedbAgfdfcAhgebefcdbghAdAfhegbcAegdfhbcbchdgefAhAbedfcgdAfcbhgefhgdAbceefdhcgAbAefbhgcdfAcebdhgAebgchfddhcfAbegcAdfbhgecAgdfhebedAghbfcedbAchgfbhAcgfdeceghAbfddAbfehcgbAhefdgcecfghbdAAhcgdfbedchAgfbebfhAgecdedAhcbgfAfdceghbehdcAbfgcegdhbfAfdAbchgegAhbfecdgeAdhfcbcbdAehfgfhgbcAedchdgbefAfhecdAbgAbedgcfhehcgfbdAAhgcebfdbAcehgfddfchgebAhcAbegdffAbehgcdchdbgAfebeAhgdfcbegcdhfAfecbdhAgdbfehgAcdbcehgfAgdehfcbAbgedAcfhdgcAfehbdfhAgecbcAgdhebfghbAefcdgebhAfdcgecdbAfhgbcAhfedhAbfgdcebAedfhcgbdfchAge

所以,我想要做的是我想在输出之间进行某种分离。所以每次输出时都会有一个新行、一个空格、一个管道、一个斜杠等。

我已经试过了

File.open("output.txt","a+") {|f| f.write(x)+" " }
Run Code Online (Sandbox Code Playgroud)

File.open("output.txt","a+") {|f| f.write(x)," " }
Run Code Online (Sandbox Code Playgroud)

File.open("output.txt","a+") {|f| f.write(x)" " }
Run Code Online (Sandbox Code Playgroud)

但它不起作用。那么我怎么能解决这个问题呢?

sep*_*eph 5

File.open("output.txt","a+") { |f| f.puts(x) }
Run Code Online (Sandbox Code Playgroud)

应该做

编辑:

您可以像这样将换行符附加到 x :

x + "\n"
Run Code Online (Sandbox Code Playgroud)

编辑2:

您想在循环之外打开文件。尝试这个:

File.open('testfile.txt', 'a+') do |f|
  (1..3).each do |i|
    f.puts("test #{i}")
  end
end
Run Code Online (Sandbox Code Playgroud)

它适用于我的机器(MBP)。它在文件中放置了 3 行:

test 1
test 2
test 3
Run Code Online (Sandbox Code Playgroud)