为了账号安全,请及时绑定邮箱和手机立即绑定

清除当前的打印控制台行

清除当前的打印控制台行

守着星空守着你 2019-11-26 13:14:41
如何在C中擦除当前打印的控制台行?我正在Linux系统上工作。例如 -printf("hello");printf("bye");我想在同一行上打印再见,代替您好。
查看完整描述

3 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

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


printf("%c[2K", 27);


查看完整回答
反对 回复 2019-11-26
?
月关宝盒

TA贡献1772条经验 获得超5个赞

您可以使用\r(回车)将光标返回到行首:


printf("hello");

printf("\rbye");

这将在同一行上打印再见。但是,它不会删除现有字符,并且由于bye比hello短,因此您最终会得到byelo。要擦除它,您可以延长新打印的时间来覆盖多余的字符:


printf("hello");

printf("\rbye  ");

或者,首先用一些空格删除它,然后打印新字符串:


printf("hello");

printf("\r          ");

printf("\rbye");

那将打印问候,然后转到行的开头并用空格覆盖它,然后再次返回到开头并打印bye。



查看完整回答
反对 回复 2019-11-26
  • 3 回答
  • 0 关注
  • 1450 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信