在ruby中,如何将输出(通过puts方法)放在一行上,而不是一行一行,而我的控制台充满了输出。基本上我希望输出在一行上不断更新,并继续写入最后一个输出。我试过做一个' \ r'字符串末尾的字符,但ruby只是忽略它并继续打印我的while循环行的输出:
i=0
while i<90
puts "#{i} matt lao \r"
i+=1
end
我只想要一条不断更新的线路。谢谢。
答案 0 :(得分:2)
puts
将始终在最后打印一个新行,因此它会回车,但之后又会换行。请改用print
。
90.times { |i| print "#{i} matt lao \r" }
要看到它实际做的正确,你可以坚持sleep
:
90.times { |i| print "#{i} matt lao \r"; sleep 0.01 }
答案 1 :(得分:0)
您需要使用print
代替puts
。
例如:
90.times do |i|
print "#{i} matt lao \r"; sleep 0.02
end
答案 2 :(得分:0)
您可以使用没有任何回车的印刷品,这样可以正常工作。
像这样 2.1.1 :016 > 0.upto(4){|i| print "#{i} "}
0 1 2 3 4 => 0
puts
会自动添加新行,而print
则不会。