我需要创建一个“更新”其输出的实用程序,就像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行开始重写相同的东西可能效率不高(或者可能是......)。
答案 0 :(得分:2)
您可以在线上退格,或者(通常更容易)打印回车,然后重新打印整条线。当你这样做时,一定要重写整个行 - 如果(例如)你有一个倒数到0的数字,当它从100下降到99(例如)时它不会必须覆盖'1',除非你确保在那里打印一个空格。
答案 1 :(得分:2)
在DOS中,您只需打印不带换行符的回车符并覆盖最后一行。