我已經開始學習Ruby,並且遇到了一個煩人的問題。我已經將一個文本文件導入到我的程序中,我想遍歷它中的行並將它們打印到屏幕上。在打印出文件中的行時,Ruby控制檯會覆蓋行。
當我這樣做時,控制檯將覆蓋最後打印出的一行並將新的一行寫在最上面。爲什麼會發生這種情況,我該如何解決它?
這裏是我的代碼:
passwords = File.open('C:\Users\Ryan\Desktop\pw.txt', 'r')
lines = passwords.gets
for line in lines
puts line
end
更新: 的循環作用很奇怪。我把一個睡眠聲明放入它,它所做的只是睡眠一次,然後繼續輸出這些行。在輸出每行之前,我會預期它會睡眠。下面的示例:
passwords.each do |line|
sleep 1
puts line.chomp
end
更新2: 我剛剛創建了一個新的文本文件,並鍵入一些隨機的東西,把它用於測試和它工作正常。看起來像原始文件有一些不好的字符/編碼,打印到控制檯。
首先以最少的步驟分離繁殖。你需要閱讀一個文件嗎?如果你只是放一串字符串呢?刪除多餘的步驟。 – 2011-04-13 00:03:51
@Rein好吧,這與一個正常的數組。必須與它作爲一個文件有關。 – Ryan 2011-04-13 00:06:50
作爲評論,你不應該在ruby中使用for-in循環。你想要做'lines.each do | line |' – 2011-04-13 00:10:41