如何避免打印两次输出结果>>

问题描述 投票:0回答:2

我编写了以下代码以从文件中读取并在终端中打印输出。我正在获取输出,但不是像下面这样打印一次:

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

ruby
2个回答
5
投票

首先您要在print_tracks(tracks)方法中两次调用main()


2
投票

您在这里两次呼叫print_tracks()

© www.soinside.com 2019 - 2024. All rights reserved.