C 如何替换命令提示符中已打印的文本?
很多时候,我看到基于文本的程序取代了已经打印的文本。例如,想象一个程序,其中进度打印为C 如何替换命令提示符中已打印的文本?,c,text,command-prompt,C,Text,Command Prompt,很多时候,我看到基于文本的程序取代了已经打印的文本。例如,想象一个程序,其中进度打印为 Loading: 5% 然后它说 Loading: 10% 等等,而不打印附加的新文本 这是怎么做到的?我在库中没有看到任何这样的函数(在本例中是C)。不过,我有一个想法:您可以编写一个字符,将提示返回到当前行的开头(\r我相信)。这是否可用于“覆盖”已打印到命令提示符的内容?我看到的一种方法是只打印退格字符多次,然后用新文本替换已擦除的内容 退格字符是一种ASCII控制字符,在大多数控制台中由\b.表示
Loading: 5%
然后它说
Loading: 10%
等等,而不打印附加的新文本
这是怎么做到的?我在库中没有看到任何这样的函数(在本例中是C)。不过,我有一个想法:您可以编写一个字符,将提示返回到当前行的开头(
\r
我相信)。这是否可用于“覆盖”已打印到命令提示符的内容?我看到的一种方法是只打印退格字符多次,然后用新文本替换已擦除的内容
退格字符是一种ASCII控制字符,在大多数控制台中由\b.表示,在将光标返回到当前行的开头后,写入不带换行符的裸回车
\r
,允许覆盖现有文本。写入退格字符\b
也会将光标向后移动一个字符
对于简单的行为,例如进度指示器,这就是您所需要的。对于更复杂的行为,您需要通过非标准方式控制终端。在基于Unix的系统上,可以使用该库—它使您能够完全控制光标位置、文本颜色、键盘回音、更细粒度的键盘输入等
在Windows上,有一个操作控制台的方法,它们可以做与Unix控制台基本相同的事情。使用
printf
\r
是一种方法。更复杂的是诅咒库的使用。@George Kastrinis:不,还没有,但我现在会^