嘿伙计们,我看到控制台应用程序打印颜色和看到的应用程序,如ffmpeg打印文本本身而不是新的行.如何在现有线上打印?我想在我的控制台应用程序中显示fps,无论是在顶部还是在底部,并且有常规printfs去那里并正常滚动
-edit-我需要这个用于Windows,但这是跨平台的,所以我最终会有一个linux和mac实现
有两个简单的可能性适用于Linux和Windows,但只适用于一行:
printf("\b");
将返回一个字符,所以你可以计算你想要退回多少个字符并在循环中触发它,或者你知道你只写了n个数字然后就像printf("\b\b\b\b\b\b\b\b\b\b");
printf("text to be overwritten by next printf\r");
这会将光标返回到行的开头,因此任何下一个printf都会覆盖它.确保写一个长度相同或更长的字符串,以便完全覆盖它.
如果你想重写几行,没有像ncurses那样可移植的东西,几乎在每个操作系统上都有lib,你不必处理ANSI差异.
编辑:添加了链接到ncurses维基百科页面,提供了很好的概述和介绍,以及链接列表,也许翻译成您的首选语言