c - 如何替换命令提示符中已打印的文本?

标签 c text command-prompt

很多次我看到基于文本的程序替换已经打印的文本。例如,想象一个程序,其中进度打印为

Loading: 5%

然后它说

Loading: 10%

等等,没有打印附加的新文本?

这是怎么做到的?我还没有在库中看到任何此类函数(在本例中为 C)。不过,我有一个想法:您可以编写一个字符,将提示返回到当前行的开头(我相信是 \r)。这可以用来“覆盖”您已经打印到命令提示符的内容吗?

最佳答案

在大多数控制台中,写一个没有换行符的纯回车 \r 会将光标返回到当前行的开头,允许您覆盖现有文本。写入退格字符 \b 也会将光标向后移动一个字符。

对于简单的行为,例如进度指示器,这就是您所需要的。对于更复杂的行为,您需要通过非标准手段来控制终端。在基于 Unix 的系统上,ncurses可以使用库——它使您可以完全控制光标位置、文本颜色、键盘回显、更精细的键盘输入等等。

在 Windows 上,有一个 suite of functions用于操纵控制台,它们可以做与 Unix 控制台基本相同的事情。

关于c - 如何替换命令提示符中已打印的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7221961/

相关文章:

iphone - 在 UITableView 中选择时如何更改单元格标题颜色

c++ - 如何通过命令提示符启动 exe 并从命令提示符窗口获取文本

batch-file - 在命令提示符中显示 VBS 变量

c - 发送带有多个参数的 pthread

c - 使用 gdb 访问命令行参数

python - Pandas 读取文本文件切片列可能与空字符串/值根据字符串/值与标题对齐

c# - 如何从我的应用程序@Client 端打开命令提示符

c - 用 C 宏定义常量变量

c - malloc(sizeof(int)) vs malloc(sizeof(int *)) vs (int *)malloc(sizeof(int))

c++ - 是否可以将 Arial Unicode 等 unicode 字体拆分为特定语言 block (例如泰语)?