1

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

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

但是我读过

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

所以我想使用像erase();Gilles 建议的东西。不过erase和朋友好像只清屏不清缓冲区。

4

2 回答 2

2

如果你使用 Windows,你可以使用这个

#include <stdio.h>

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

该线程有以下建议:

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

如果需要,可以将其绑定到一个键:

bind / eval "scrollback 0" "scrollback 15000"

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

于 2013-02-18T09:10:20.540 回答
1

C 没有屏幕或回滚缓冲区的概念,因此仅使用 C 无法解决此问题。您的系统可能会提供实现所需效果的方法,本质上使您的程序不再是 C 程序,而是为“使用 Frobozz Magic V1.42 中的 C 实现而编写的程序,使用 Frobniz 编译器并与 CleanScreen 库工具包链接”。将自己从非便携式编程的噩梦中解救出来,忘记这个想法。尝试解决有用的问题,例如在 C 中实现算法,忘记屏幕清除等无用的 chrome。(如果你真的必须,链接到一个 termcap 库并调用适当的函数)。

于 2013-02-18T09:09:47.410 回答