我编写了以下代码以从文件中读取并在终端中打印输出。我正在获取输出,但不是像下面这样打印一次:
Crackling Rose sounds/01-Cracklin-rose.wav Soolaimon sounds/06-Soolaimon.wav Sweet Caroline sounds/20-Sweet_Caroline.wav
我两次获得输出,如:
Crackling Rose sounds/01-Cracklin-rose.wav Soolaimon sounds/06-Soolaimon.wav Sweet Caroline sounds/20-Sweet_Caroline.wav Crackling Rose sounds/01-Cracklin-rose.wav Soolaimon sounds/06-Soolaimon.wav Sweet Caroline sounds/20-Sweet_Caroline.wav
任何可能的原因?
这是我的代码:
class Track
attr_accessor :name, :location
def initialize (name, location)
@name = name
@location = location
end
end
# Returns an array of tracks read from the given file
def read_tracks(a_file)
count = a_file.gets().to_i()
i=0
tracks = Array.new()
while (i<count)
track = read_track(a_file)
tracks << track
i+=1
end
return tracks
end
# reads in a single track from the given file.
def read_track(a_file)
track_name=a_file.gets.chomp
track_location = a_file.gets.chomp
track = Track.new(track_name, track_location)
track.name= track_name
track.location= track_location
return track
end
# Takes an array of tracks and prints them to the terminal
def print_tracks(tracks)
index = 0
while (index<tracks.length)
print_track tracks[index]
index+=1
end
end
# Takes a single track and prints it to the terminal
def print_track(track)
puts(track.name)
puts(track.location)
end
# Open the file and read in the tracks then print them
def main()
a_file = File.new("input.txt", "r") # open for reading
tracks=read_tracks(a_file)
print_tracks(tracks)
# Print all the tracks
print_tracks(tracks)
end
main()
我编写了以下代码以从文件中读取并在终端中打印输出。我正在获取输出,但没有像它那样一次打印出来:脆皮玫瑰声音/01-Cracklin-rose.wav ...
首先您要在print_tracks(tracks)
方法中两次调用main()
您在这里两次呼叫print_tracks()