清除屏幕和缓冲区

时间:2013-02-18 07:26:54

标签: c linux

我有这个示例程序。它会清除屏幕和回滚缓冲区。

#include <stdio.h>
int
main(void)
{
  printf("\ec");
  return 0;
}

但是我已经读过那个

  

并非所有终端都采用ANSI / VT100 +转义序列。

所以我想使用像erase();这样的东西 Gilles suggests。但是erase和朋友似乎只清除屏幕而不是缓冲区。

2 个答案:

答案 0 :(得分:1)

C没有屏幕或回滚缓冲区的概念,所以单独使用C无法解决这个问题。您的系统可能提供实现所需效果的方法,实质上是使您的程序不再是C程序,而是为“使用Frobniz编译器在Frobozz Magic V1.42上找到的C实现编写的程序,并与CleanScreen Library工具包“。让自己远离非便携式编程的噩梦,忘记这个想法。尝试解决有用的问题,比如在C中实现算法,并忘记像屏幕清除这样无用的chrome。 (如果您确实必须,请与termcap库链接并调用相应的函数)。

答案 1 :(得分:1)

如果您使用的是Windows,则可以使用此

#include <stdio.h>

int main(void)
{
  system("cls"); //call to system function to clear screen.
  return 0;
}

This thread有以下建议:

在要删除其回滚的窗口中,将回滚设置为零,然后将其恢复为正常值(在您的情况下为15000)。

如果需要,可以将其绑定到密钥:

bind / eval "scrollback 0" "scrollback 15000"

在输入scrollback 0后,您也可以从会话中发出C-a :命令。 HTH。