[英]gets.chomp without moving to a new line
我理解在puts
和gets
结束时自动完成的,以及如何处理这些,但有没有办法保持显示点(“光标位置”,如果你愿意)从移动到新线击中输入输入与后gets
?
例如
print 'Hello, my name is '
a = gets.chomp
print ', what's your name?'
最终看起来像
你好,我叫Jeremiah,你叫什么名字?
你可以通过使用(记录很少的) 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
参考文献:
相关的后续问题:
也许我错过了一些东西,但'gets.chomp'工作得很好不是吗? 要执行您想要的操作,您必须转义撇号或使用双引号,并且您需要包含用户在打印的字符串中输入的内容:
print 'Hello, my name is '
a = gets.chomp
print "#{a}, what's your name?"
# => Hello, my name is Jeremiah, what's your name?
适合我。 (编辑:在TextMate中工作,而不是终端)
否则,你可以做这样的事情,但我意识到这不是你要求的:
puts "Enter name"
a = gets.chomp
puts "Hello, my name is #{a}, what's your name?"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.