我遇到了问题,因为我想要结合我从用户那里获得输入的两种方式。我想在用户开始输入之前打印“%”,但我也希望为每个可能的输入行执行此操作。
通常我会这样做
print "% "
input = gets.chomp
或
$stdin.each_line do |line|
...
end
但我不确定在读取循环的每一行之前如何打印。有简单的解决方案吗?
答案 0 :(得分:0)
以下脚本要求您输入,直到您键入'42'(it is an earth simulator by the way)在每次输入之前打印一些内容。
loop do
print "Think of a question and give me its answer: "
a = gets
break if a.chomp == "42"
end
puts "You have found a possible question!"
这是你的想法吗?
答案 1 :(得分:0)
我们可以做到
begin
print "%: "
a = gets
puts a
end (condition)
或
input = "%" + gets.chomp
答案 2 :(得分:0)
如果您使用的是编辑器,则可能正在管理缓冲区。这是一个常见问题。
您可以在文件程序的顶部设置STDOUT.sync = true
,这可能是您的解决方案,或者您可以在获取声明之前直接使用STDOUT.fluxh
。
否则,从终端/控制台/ shell而不是IDE运行程序。