1
A
回答
2
1
這將在Terminal.app工作,但在Mac OS X Lion的每行1個字符是在退出清除。我認爲這是Terminal.app的一個錯誤。
CR = "\r"
CLEAR = "\e[0J"
RESET = CR + CLEAR
lines_count = 3
3.times do |i|
puts "First line #{i}"
puts "Second line #{i}"
puts "Third line #{i}"
sleep(1)
$stdout.flush
lines_count.times do
print "\e[1F"
print "\e[1K"
end
end
print "\e[#{lines_count}E"
1
你可以使用使用curses來處理你的輸出但這很可能是矯枉過正,簡單的東西是這樣的。
通常的方法是打印出一堆退格,將輸出光標重新定位在最後一個字符串的開頭;請注意,"\b"
不一定會覆蓋任何內容,因此您必須用空格來覆蓋結尾以保證安全。事情是這樣的:
messages = [
'Professionally simplify seamless systems with prospective benefits.',
'Dramatically cultivate worldwide testing procedures for robust potentialities.',
'Intrinsicly provide access to future-proof testing procedures after superior supply chains.',
'Globally matrix multidisciplinary outsourcing vis-a-vis distributed paradigms.',
'Compellingly fashion visionary content via functionalized web services.',
'Phosfluorescently e-enable e-markets rather than internal or "organic" sources.'
]
reposition = ''
clear_the_end = ''
(0 ... messages.length).each do |i|
if(i > 0)
clear_the_end = ' ' * [0, messages[i - 1].length - messages[i].length].max
end
$stdout.syswrite(reposition + messages[i] + clear_the_end)
reposition = "\b" * (messages[i].length + clear_the_end.length)
sleep 1
end
puts
你要使用syswrite
避免緩衝和平常"\n"
是puts
追加。這種事情應該在你可能遇到的任何終端中工作。
您也可以使用回車("\r"
),而不是一堆退格的:
# `reposition = "\b" * (messages[i].length + clear_the_end.length)` becomes
resposition = "\r"
但你仍然需要所有的clear_the_end
擺弄,以確保您覆蓋所有的最後一行。
相關問題
- 1. 打印多行字符串
- 2. Ruby在同一行上多次打印
- 3. 該字符串打印多少次?
- 4. 在循環的同一行上打印多個字符串
- 5. python在多行上打印字符串
- 6. C++字符串在多行上打印
- 7. 打印字符多次
- 8. 如何在Python中的同一行上打印多行字符串
- 9. 打印出同一行多次
- 10. 打印多少次在一個字符串
- 11. 並排打印多行字符串
- 12. 打印相同的行多次在Perl
- 13. 如何在消息框中打印多行字符串?
- 14. 如何在同一行中打印3個字符串?
- 15. 如何在input()函數的同一行上打印字符串?
- 16. 如何將多行字符串打印到blob中?
- 17. 如何用`putStrLn`打印多行字符串?
- 18. 巴什 - 如何打印多行字符串(以「\ n」)用printf
- 19. 如何打印多行字符串參數的每個元素?
- 20. 如何在一行上一次打印一個字符?
- 21. 如何一次打印多個項目
- 22. 多awk來在同一行打印
- 23. 如何格式化JLabel以在多行上打印出一個字符串?
- 24. 如何在java中一個接一個地打印字符串
- 25. 如何在字符串中打印兩個或多個相同的字母?
- 26. 如何讓Python在同一行上一次打印一個字符?
- 27. 如何在R中打印多行字符變量的行號?
- 28. 如何只打印一次字符串中的每個字母
- 29. 如何一次處理多行字符串行
- 30. 在一個文件中找到一個字符串併爲多行打印行
添加期望的輸入和期望的輸出的例子,不能說我能理解你在這裏尋找什麼。 –
@Mauricio:檢查納什的答案。這是我想要達到的行爲。我希望能夠使用'\ r',它可以做我想要的一條線,而且它更乾淨。如果您可以提出更好的答案,請添加新答案。 – Nerian