gpt4 book ai didi

ruby - 使用 ruby​​ 制作闪烁的控制台消息

转载 作者:数据小太阳 更新时间:2023-10-29 07:44:09 24 4
gpt4 key购买 nike

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! 打印到屏幕上,但它不会闪烁。它只是停留在那里,就好像退格键没有生效一样。但我这样做:

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 次循环后)为什么退格键在其数量等于要删除的字符串的长度时停止生效?

我怎样才能克服这个问题并创建一个闪烁的消息,只使用属于 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 7 中使用带有 Ruby 和 Rails 的命令提示符

最佳答案

通常会这样写:

0.upto(9) do
STDOUT.print "\rFlash!"
sleep 0.5
STDOUT.print "\r " # Send return and six spaces
sleep 0.5
end

在我们使用 TTY 和点阵打印机的时代,我们很快就习惯了回车控制字符,例如“\r”、“\n”、“\t”等. 今天,人们很少这样做开始,因为他们想使用网络和浏览器;学习与设备对话要晚很多。

“\r”表示将托架返回到原位,在打字机上将滚轮一直移动到右侧,这样我们就可以再次在左边距开始打字。移动头打印机则相反,将打印头一直向左移动,但无论哪种情况,打印都会再次从左边距开始。使用 console/telnet/video-TTY,它将光标移动到左边距。都是一样的,只是技术不同。


一个更有用的例程是:

msg = 'Flash!'

10.times do
print "\r#{ msg }"
sleep 0.5
print "\r#{ ' ' * msg.size }" # Send return and however many spaces are needed.
sleep 0.5
end

msg 更改为您想要的内容,代码将自动使用正确数量的空格来覆盖字符。

关于ruby - 使用 ruby​​ 制作闪烁的控制台消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19302404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com