C ,没有换行符的换行符?

标签 c printf stdout linefeed

愚蠢的问题但是, 是否可以使用 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/

相关文章:

C: Printf 改变变量的值

c - 使用 C 在终端的 printf 输出中获取一个奇怪的百分号

python - 使用 ctypes 时,C 函数中的 printf() 在 Python 中输出错误结果

windows - 使用批处理脚本将命令输出到文件

多处理期间的 Python stdout

c - 在c中的不同函数中修改字符串数组

c - 线程调度 Round Robin/scheduling dispatch

c - 当向本地网络之外发送数据包时,目标 MAC 地址应该设置为什么?

bash - 将 stdout/stderr 重定向到多个文件

c - gcc 退出时未定义对头文件中函数的引用