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: 新しいテキスト ファイルを作成し、テスト用にランダムな内容を入力したところ、正常に動作しました。元のファイルには、コンソールへの印刷を台無しにする悪い文字/エンコーディングが含まれていたようです。