【问题标题】:Clear multiple lines清除多行
【发布时间】:2014-01-02 20:23:46
【问题描述】:

例如,是否可以清除 C 中的多行并保留其他行。

代码:

Displaysenrsordata
  loop 
    printf("This info stays"); <-stay on screen
    printf("This info stays"); <-stay on screen
    printf("This info Refreshes"); <-update redraw
    printf("This info Refreshes"); <-update redraw
    printf("This info Refreshes"); <-update redraw

基本上我想让一些文本留在同一个地方并重绘更新数据而不清除整个屏幕。

【问题讨论】:

  • 您需要指定您的环境(Unix 终端/Windows 控制台应用程序/...),因为这超出了 ISO C。

标签: c terminal console printf


【解决方案1】:

不,您不能只清除控制台窗口的一部分。

【讨论】:

  • 在标准 C++ 中甚至无法清除全屏。
  • @BenjaminBannier 不是标准的一部分,但如果刷新率不太高,您可以执行 system("cls") 或 system("clear") 工作正常。
【解决方案2】:

如果您使用的是 linux,请使用 ncurses

例子:

#include <stdio.h>
#include <ncurses.h>
  int main (void)
  {
    int a = 0;
    initscr ();
    printw("This info stays \n");
    printw("This info stays\n");
    curs_set (0);
    while (a < 100) {
            mvprintw (3, 4, "%d", a++);
            mvprintw (3, 8, "%d", a++);
            mvprintw (3, 12, "%d", a++);
            refresh ();
            sleep (1);
    }
    endwin();
    return 0;
 }

【讨论】:

    【解决方案3】:

    您可以通过打印\r 覆盖当前行,或者通过打印\b 覆盖当前行的最后一个字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-12
      • 1970-01-01
      • 1970-01-01
      • 2013-03-04
      • 2018-07-02
      • 2012-08-11
      • 2014-05-04
      • 1970-01-01
      相关资源
      最近更新 更多