我们如何实现 clrscr()
?谷歌搜索我发现 \x1b[2j
可以用来清除屏幕,但我们如何使用它?
最佳答案
标准 C 库不提供清除屏幕的方法。为此,您需要一个依赖于操作系统的库。
在 DOS 和 Windows 下,对于在 DOS 或 Windows 控制台中运行的程序,您可以使用操作系统附带的核心 C 库中提供的 DOS/Windows 扩展:
#include <conio.h>
clrscr();
在 unix 系统下,您可以使用操作系统提供的 curses 库。大多数操作系统(包括 Windows)都存在 Curses 库的端口,因此这是可移植程序的方法。将您的程序与
-lcurses
链接并使用#include <curses.h>
erase();
某些终端和终端模拟器执行特殊功能,例如在收到转义序列时清除屏幕。大多数终端都遵循 ANSI 标准,该标准定义了许多转义序列;
"\x1b[2J"
就是这样的序列,其作用是清除屏幕。注意大写 J
。在这样的终端上,fputs("\x1b[2J", stdout)
清除屏幕。实际上,当您在这样的终端上调用erase()
时,curses库便会执行此操作; curses 库包括一个终端类型数据库以及用于各种类型的转义序列。关于c - 如何使用\x1b[2j 清除屏幕?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3646240/