【问题标题】:Changing of existing text in console window更改控制台窗口中的现有文本
【发布时间】:2012-12-05 17:22:08
【问题描述】:

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

【问题讨论】:

    标签: c c99 c89 c11


    【解决方案1】:

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


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

    【讨论】:

      【解决方案2】:

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

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

      如果您想要更好地处理屏幕上的文本,可以查看ncurses

      【讨论】:

        猜你喜欢
        • 2010-12-20
        • 2014-01-05
        • 1970-01-01
        • 2015-08-15
        • 2010-09-16
        • 1970-01-01
        • 2013-02-12
        • 2018-01-31
        • 1970-01-01
        相关资源
        最近更新 更多