首页 > 解决方案 > 通过替换旧行在控制台中打印多行文本

问题描述

我想将三行文本打印控制台,替换当前打印的三行。这里的解决方案不适用于三行

我希望每次迭代都有这个输出:

1号线

2号线

3号线

我尝试了以下方法:

for(i in 1:3){
  cat('\rLine1', '\rLine2', '\rLine3')
}

输出:第 3 行

for(i in 1:3){
  cat('\rLine1', '\nLine2', '\nLine3')
}

输出:

1号线

2号线

1号线

2号线

1号线

2号线

3号线

for(i in 1:3){
  cat('\rLine1', 'Line2', 'Line3')
}

输出: Line1 Line2 Line3 Line2 Line3

请注意,acutall 文本是不同的,而不是 line1、line2 和 line3,但它实际上是一个函数的进度,经过和预测的时间,但所有变量都是字符。看

cat('\rProgress: |',rep('=',floor((i/iterations)*50)),rep(' ',50 - floor((i/iterations)*50)),'|',
      'Elapsed time:', elapsedTime,
      'Time left:',    predictedTime,
      sep = '')

实际代码太长太复杂,因此我提供了上面的示例。所需的输出是

进度:|=====================|

经过时间:0 小时、0 分钟、4 秒

剩余时间:0 小时 0 分钟 10 秒

标签: r

解决方案


尝试这个:

lines <- rep(c("Line1", "Line2", "Line3"), 3) # for 3 iterations
cat(lines, sep = "\n")
#output
Line1
Line2
Line3
Line1
Line2
Line3
Line1
Line2
Line3

推荐阅读