在控制台窗口中更改现有文本

时间:2012-12-05 17:22:09

标签: c c99 c89 c11

有时,当我安装程序时,我会在控制台窗口(或其他动态更改文本)中看到进度条。它显示,并在同一行字符串中更改。当我使用printf或其他函数时,我会编写下一个文本,但我无法在控制台窗口中修改已存在的文本。我怎么能通过C做到?

2 个答案:

答案 0 :(得分:3)

这种效果的最简单方法是使用逗号返回\r字符,让您可以在上一行上书写。


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

答案 1 :(得分:2)

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

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

如果您想要更好的方法来操作屏幕上的文字,可以查看ncurses