我有这个示例程序。它会清除屏幕和回滚缓冲区。
#include <stdio.h>
int
main(void)
{
printf("\ec");
return 0;
}
但是我已经读过那个
并非所有终端都采用ANSI / VT100 +转义序列。
所以我想使用像erase();
这样的东西
Gilles suggests。但是erase
和朋友似乎只清除屏幕而不是缓冲区。
答案 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。