猿问

清除当前的打印控制台行

如何在C中擦除当前打印的控制台行?我正在Linux系统上工作。例如 -


printf("hello");

printf("bye");

我想在同一行上打印再见,代替您好。


守着星空守着你
浏览 1451回答 3
3回答

慕神8447489

您可以使用VT100转义码。包括xterm在内的大多数终端都支持VT100。要擦除线,此为^[[2K。在C中,它给出:printf("%c[2K", 27);

月关宝盒

您可以使用\r(回车)将光标返回到行首:printf("hello");printf("\rbye");这将在同一行上打印再见。但是,它不会删除现有字符,并且由于bye比hello短,因此您最终会得到byelo。要擦除它,您可以延长新打印的时间来覆盖多余的字符:printf("hello");printf("\rbye  ");或者,首先用一些空格删除它,然后打印新字符串:printf("hello");printf("\r          ");printf("\rbye");那将打印问候,然后转到行的开头并用空格覆盖它,然后再次返回到开头并打印bye。
随时随地看视频慕课网APP
我要回答