我了解自动在末尾的 \nputs
and gets
,以及如何处理这些问题,但是有没有办法在按 Enter 进行输入后保持显示点(“光标位置”,如果愿意的话)移动到新行gets
?
e.g.
print 'Hello, my name is '
a = gets.chomp
print ', what's your name?'
最终会看起来像
你好,我叫耶利米,你叫什么名字?
您可以通过使用(文档非常少)来做到这一点getch
:
require 'io/console'
require 'io/wait'
loop do
chars = STDIN.getch
chars << STDIN.getch while STDIN.ready? # Process multi-char paste
break if ["\r", "\n", "\r\n"].include?(chars)
STDOUT.print chars
end
参考:
- http://ruby-doc.org/stdlib-2.1.0/libdoc/io/console/rdoc/IO.html#method-i-getch
- http://ruby-doc.org/stdlib-2.1.0/libdoc/io/wait/rdoc/IO.html#method-i-ready-3F
相关后续问题:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)