清除多行

时间:2013-12-15 11:42:13

标签: c terminal console printf

是否可以清除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

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

3 个答案:

答案 0 :(得分:3)

如果您正在使用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;
 }

答案 1 :(得分:3)

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

答案 2 :(得分:-3)

不,您无法仅清除控制台窗口的一部分。