更新输出

时间:2011-04-28 00:59:37

标签: c

我需要创建一个“更新”其输出的实用程序,就像curl不断更改其最后一行一样:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  8434  100  8434    0     0   4064      0  0:00:02  0:00:02 --:--:--  7695

我认为使用像诅咒这样的东西不是去这里的方法。我不想操纵窗口,我想简单地改变我的最后一行输出。

我想到的解决方案是打印一些足以重写线的退格。但我还没有测试过这个。我想知道这是一种“正确”的做法,还是有更好的做法。

另外,在我的情况下,我需要更新最后一行。所以我不需要那么多的退格(如果这是解决方案);但是(为了使它通用)如果我需要更新-10行,从第9行开始重写相同的东西可能效率不高(或者可能是......)。

2 个答案:

答案 0 :(得分:2)

您可以在线上退格,或者(通常更容易)打印回车,然后重新打印整条线。当你这样做时,一定要重写整个行 - 如果(例如)你有一个倒数到0的数字,当它从100下降到99(例如)时它不会必须覆盖'1',除非你确保在那里打印一个空格。

答案 1 :(得分:2)

在DOS中,您只需打印不带换行符的回车符并覆盖最后一行。