好的,所以我想做的是在命令行中打印出完整的百分比,现在,我希望这只是“更新”屏幕上显示的数字。因此,以某种方式返回到该行的开头并对其进行更改。
例如,Windows relog.exe命令行实用程序(可以将.blg文件转换为.csv文件)可以执行此操作。如果您运行它,它将显示完成百分比。
现在,这可能是用C++编写的。
我不知道这在perl中也是可行的吗?
最佳答案
使用八进制的“\r”或“\015”(又名“Return caret”又名“Carriage Return”字符,源自打字机时代:)
> perl5.8 -e 'print "11111\r222\r3\n";'
32211
> perl5.8 -e 'print "11111\015222\0153\n";'
32211
只是不要忘记打印至少与已打印的最长字符串一样多的字符以覆盖任何旧字符(如您在上面的示例中所看到的,否则这样做将保留旧字符)。
还要注意的另一点是,正如Michael在评论中指出的那样,在进行这些打印时需要打开自动刷新功能,以使输出不会在处理的最后等待换行符。
更新:请注意,另一个答案中推荐的013八进制字符实际上是“垂直”标签:
> perl5.8 -e 'print "11111\013222\0133\n";'
11111
222
3
关于Perl:打印回到行首,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2774596/