控制台打印没有滚动

5 printing console

嘿伙计们,我看到控制台应用程序打印颜色和看到的应用程序,如ffmpeg打印文本本身而不是新的行.如何在现有线上打印?我想在我的控制台应用程序中显示fps,无论是在顶部还是在底部,并且有常规printfs去那里并正常滚动

-edit-我需要这个用于Windows,但这是跨平台的,所以我最终会有一个linux和mac实现

lIm*_*bus 19

有两个简单的可能性适用于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维基百科页面,提供了很好的概述和介绍,以及链接列表,也许翻译成您的首选语言