如何在C中擦除当前打印的控制台行?我正在Linux系统上工作。例如 -printf("hello");printf("bye");我想在同一行上打印再见,代替您好。
3 回答

慕神8447489
TA贡献1780条经验 获得超1个赞
您可以使用VT100转义码。包括xterm在内的大多数终端都支持VT100。要擦除线,此为^[[2K。在C中,它给出:
printf("%c[2K", 27);

月关宝盒
TA贡献1772条经验 获得超5个赞
您可以使用\r(回车)将光标返回到行首:
printf("hello");
printf("\rbye");
这将在同一行上打印再见。但是,它不会删除现有字符,并且由于bye比hello短,因此您最终会得到byelo。要擦除它,您可以延长新打印的时间来覆盖多余的字符:
printf("hello");
printf("\rbye ");
或者,首先用一些空格删除它,然后打印新字符串:
printf("hello");
printf("\r ");
printf("\rbye");
那将打印问候,然后转到行的开头并用空格覆盖它,然后再次返回到开头并打印bye。
- 3 回答
- 0 关注
- 1472 浏览
添加回答
举报
0/150
提交
取消