1

有时,当我安装程序时,我会在控制台窗口(或其他动态变化的文本)中看到进度条。它显示,并在同一行字符串中更改。当我使用printf或其他功能时,我写下一个文本,但我不能在控制台窗口中修改已经存在的文本。我怎样才能通过C来做到这一点?

4

2 回答 2

3

这种效果最简单的方法是使用插入符返回\r字符,它可以让您覆盖上一行。


如果您想直接访问控制台的缓冲区(即在特定的 X/Y 位置而不是逐行写入),那么您可能正在寻找像pdcurses.

于 2012-12-05T17:24:17.410 回答
2

如果您想继续使用 printf 并轻松“更改”文本,请\r在 linux 上使用回车。但它不适用于 MAC,因为它意味着换行。

如果你这样做,我建议使用ioctl隐藏插入符号以防止闪烁和丑陋的效果。

如果您想要一种更好的方式来处理屏幕上的文本,您可以查看ncurses

于 2012-12-05T17:26:02.917 回答