愚蠢的问题但是, 是否可以使用 printf(); 在没有换行的情况下在 stdout 上换行?如果没有,关于如何覆盖 2+ 行的任何提示(如果可能)?
我正在尝试生成一种进度条,但在多行上。 有什么想法吗?
编辑: 所以是的,我接受了以下答案,尽管它不适用于我的具体情况。 我正在尝试覆盖 2+行 而不是单行。
printf("12345\r");
fflush(stdout);
printf("67890\n");
结果是
$ ./a.out
67890
但我想要实现的是用新数据覆盖 2+ 行。 类似于进度条,但在 2 行以上,除了我有一些数据的百分比数字。
最佳答案
要重写一行的全部(或部分),您需要使用正确数量的退格字符。例如:
printf("some text");
printf("\b\b\b\bstuff");
将输出:
some stuff
这对于简单的东西来说很好;对于更复杂的东西,你应该使用 ncurses它使用 ANSI 转义技巧来操纵屏幕周围的光标。
关于C ,没有换行符的换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15251464/