0.upto(9) do
STDOUT.print "Flash!"
sleep 0.5
STDOUT.print "\b\b\b\b\b\b" # (6 backspaces, the length of "Flash!")
sleep 0.5
end
此代碼不起作用。它將Flash!
打印到屏幕上,但不閃爍。它只停留在那裏,好像後臺空間不起作用。但我這樣做:用ruby製作閃爍控制檯信息
0.upto(9) do
STDOUT.print "Flash!"
sleep 0.5
STDOUT.print "\b\b\b\b\b" # (5 backspaces, the length of "Flash! - 1")
sleep 0.5
end
它幾乎工作。它打印這個:FFFFFFFFFFlash!
(9循環後)當它們的數字等於它們正在刪除的字符串的長度時,爲什麼backspaces停止生效?
我該如何克服這個問題並創建一個閃爍的消息,只使用屬於rails的庫?
我試着像這樣的解決方法:
0.upto(9) do
STDOUT.print " Flash!"
sleep 0.5
STDOUT.print "\b\b\b\b\b\b"
sleep 0.5
end
(注意" Flash!"
的空間),但發生的事情是出現的消息在屏幕抓取!一個有趣的效果,但不是我想要的。
我在Windows中使用命令提示符與Ruby和Rails 7
有趣的代碼..我繼續運行,它..和享受輸出:) –
你可能想使用一個庫來做到這一點,如[curses](http://ruby-doc.org/stdlib-1.9。3/libdoc/curses/rdoc /),或者至少是[ANSI庫](https://github.com/rubyworks/ansi)。還要確保設置了「STDOUT.sync = true」。沒有必要指定'STDOUT.print',因爲'print'會默認執行。 – tadman
對不起,如果這是一個初學者的問題,但我可以要求詛咒而無需安裝寶石?默認情況下它是否爲ruby的一部分? – Starkers