0

我使用 RTMPDump 下载媒体流,我想将输出重定向到我可以控制的流,这样我就可以解析进度并做一些事情。但是该程序与许多命令行工具一样,在同一行中显示进度,然后在程序运行时不断更新。它看起来像这样?

44929.160 kB / 556.34 sec

我的问题是:这是某种特殊字符,它删除了使程序能够重写同一行的字符或行吗?还是发生了其他事情?

4

2 回答 2

2

一个简单的方法是在每行的开头打印一个回车:

# Using bash as an example
for i in {0..10}; do
  printf "\r%s" $i
  sleep 1
done

更复杂的格式可以使用 ANSI 转义码来更精确地定位光标。

于 2012-09-16T15:09:55.637 回答
1

如果要写同一行,则必须删除字符并用新字符覆盖它们。您可以通过提供适量的backspaces删除字符来做到这一点。另一种选择是清除整个控制台然后重写它。这可以通过System("cls");(Windows 上的 C++)来完成。

于 2012-09-16T15:07:19.573 回答