Tôi đã chạy các chương trình dòng lệnh xuất ra một dòng, và sau đó cập nhật dòng đó một lát sau. Nhưng với ruby tôi chỉ có thể xuất hiện một dòng và sau đó một dòng khác.Viết qua các dòng đầu ra trước đó trong dấu nhắc lệnh với ruby
Những gì tôi đã đang được đầu ra bây giờ:
Downloading file:
11MB 294K/s
12MB 307K/s
14MB 294K/s
15MB 301K/s
16MB 300K/s
Done!
Và thay vào đó, tôi muốn thấy điều này:
Downloading file:
11MB 294K/s
Tiếp theo một lúc sau của thành viên này:
Downloading file:
16MB 300K/s
Done!
Dòng kết quả đầu ra kịch bản ruby của tôi cho thấy tốc độ truyền tải và tốc độ truyền tải sẽ được ghi đè mỗi lần thay vì danh sách nhập các giá trị được cập nhật thành một dòng hoàn toàn mới.
Tôi hiện đang sử dụng puts
để tạo đầu ra, rõ ràng không được thiết kế cho trường hợp này. Có một phương thức đầu ra khác có thể đạt được kết quả này không?
Giải pháp này không hiển thị đầu ra cho đến khi một dòng mới là đầu ra, hoặc chương trình kết thúc, có vẻ như. Ví dụ này, ví dụ 'in '123'; ngủ 5; in "\ r"; in "456" 'không in ra bất cứ thứ gì lúc đầu, và sau đó in ra" 456 "5 giây sau đó. Vì vậy, nó không giúp tôi nhiều. –
Thêm 'STDOUT.flush' để gửi nó đến đầu ra ngay lập tức. Tôi cũng đã cập nhật câu trả lời. – detunized
Ahhhh có ý nghĩa. Đó là cố định và làm việc của nó tuyệt vời bây giờ, cảm ơn bạn! –