Question

Je lis une ligne de fichiers en ligne dans un programme simple et lorsque j'imprime les lignes à l'écran la dernière ligne ne peut pas être vu à la fenêtre ouput dans Netbeans 6.5.1 IDE sur Windows XP, mais quand je exécuter le programme directement à partir de la ligne de commande comme « main.rb rubis » il n'y a pas un problème (la dernière ligne peut être vu) en utilisant Ruby .I'm 1.8.6.Here est le code entier:

File.open("songs.txt","r") do |file|
  file.each do |line|
    print line
   end
end
Était-ce utile?

La solution

Cela fonctionne mieux si vous utilisez puts qui ajoutera une nouvelle ligne s'il terminaison est pas déjà à la fin de la ligne, forçant une chasse d'eau tampon.

Autres conseils

Je ne l'ai jamais couru à travers cela avant moi, mais je pense serait que votre dernière ligne ne dispose pas d'un saut de ligne de fuite, de sorte que la console Netbeans est pas le rinçage de la ligne. Essayez d'ajouter $stdout.flush à la fin du programme et voir ce que arrive.

Par ailleurs, vous pouvez simplifier ce code légèrement en le réécrivant en utilisant foreach :

File.foreach("songs.txt","r") do |file|
  print line
end
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top