Frage

Ich lese eine Dateizeile für Zeile in einem einfachen Programm und wenn ich die Zeilen auf dem Bildschirm drucke Direkt aus der Befehlszeile als "Ruby main.rb" gibt es kein Problem (dh die letzte Zeile ist zu sehen). Ich werde Ruby 1.8.6 verwenden. Hier ist der gesamte Code:

File.open("songs.txt","r") do |file|
  file.each do |line|
    print line
   end
end
War es hilfreich?

Lösung

Dies funktioniert besser, wenn Sie verwenden puts Dies wird einen Newline -Terminator anhängen, wenn am Ende der Linie noch keiner vorhanden ist, was einen Pufferspüsch erzwingt.

Andere Tipps

Ich habe das noch nie vor mir selbst gelaufen, aber meine Vermutung wäre, dass Ihre letzte Linie keine Nachverfolgungspause hat, sodass die Netbeans -Konsole die Linie nicht spüle. Versuchen Sie hinzu $stdout.flush Am Ende des Programms und sehen, was passiert.

Übrigens können Sie diesen Code geringfügig vereinfachen, indem Sie ihn verwenden foreach:

File.foreach("songs.txt","r") do |file|
  print line
end
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top