我正在一个简单的程序中逐行读取文件,当我将这些行打印到屏幕上时,在 Windows XP 上的 Netbeans 6.5.1 IDE 的输出窗口中看不到最后一行,但是当我运行该程序时直接从命令行作为“ruby main.rb”,没有问题(即可以看到最后一行)。我使用的是 Ruby 1.8.6。这是完整的代码:

File.open("songs.txt","r") do |file|
  file.each do |line|
    print line
   end
end
有帮助吗?

解决方案

如果您使用的话,效果会更好 puts 如果行尾还没有换行符,它将附加一个换行符,强制刷新缓冲区。

其他提示

我以前从未遇到过这种情况,但我的猜测是您的最后一行没有尾随换行符,因此 Netbeans 控制台不会刷新该行。尝试添加 $stdout.flush 在程序结束时看看会发生什么。

顺便说一句,您可以通过使用重写来稍微简化此代码 foreach:

File.foreach("songs.txt","r") do |file|
  print line
end
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top