如何删除在 C 代码中打印的换行符?我想写一堆行并删除它们,暂停后打印一些其他行然后删除它们......在一个循环中。就像无需滚动的实时更新。我可以打印字符并通过打印退格字符来删除它们,但是一旦我打印新行,我就无法删除创建的行。有什么办法可以做到这一点?
问问题
623 次
3 回答
2
退格字符'\b'
(ASCII 8)移动到行内的前一个位置。
如果您低于xterm
或vt100
兼容,您可以使用控制台代码:
#include <stdio.h>
#include <unistd.h> /* for sleep() */
int main(void)
{
printf("Line\n");
sleep(2);
printf("\033[A"); /* move cursor one line up */
printf("\033[K"); /* delete line */
return 0;
}
于 2013-08-29T16:29:39.620 回答
1
退格字符不会“删除”任何内容。就字节流/文件内容而言,它只是一个像其他任何东西一样的字符。但是,当打印到终端时,退格会将光标位置向左移动一个单位,从而允许下一个打印字符在屏幕上替换它。在大多数终端上,如果您已经在最左边的位置,它什么也不做,但即使它确实在那里工作,它也不知道在上一行移动到哪里。
于 2013-08-29T17:48:33.940 回答
0
0x08
,或\b
ASCII 码,只是一个(特殊)字符,发送到stdout
. 如何stdout
处理取决于实施。
于 2013-08-30T00:58:29.740 回答