在linux中clear命令可以刷新整个屏幕,但本质上还是只是让终端向后上翻了一页,滚动屏幕还是可以看到之前的信息。而reset命令将完全刷新整个屏幕,之前的终端输入操作信息都将会清空,
具体地clear命令的实现:
#include<stdio.h>
int main()
{
fputs("\x1b[2J\x1b[H",stdout);
exit(0);
}
这些都是VT100的控制码,是一个终端类型的定义。用来在终端上扩展显示代码
可以通过echo来输出,或通过C语言中的printf函数来控制
“\x1b[2J” 表示清除整个屏幕,行属性变成单宽单高,光标不变
“\x1b[H” 表示光标不动。
还有一些控制码:
\033[0m 关闭所有属性
\033[1m 设置为亮高
\033[4m 下划线
\033[5m 闪烁
\033[7m 返显
\033[8m 消隐
\033[nA 光标上移n行
\033[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[y;xH 设置光标位置
\033[2J 清屏
\033[k 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25I 隐藏光标
\033[?25h 显示光标
\033[30m-\033[37m 设置前景颜色
\033[40m-\033[47m 设置背景颜色
VT100 关于颜色的说明.
VT100 的颜色输出分为,注意要同时输出前景的字符颜色和背景颜色。
字背景颜色范围:40----49
40:黑
41:深红
42:绿
43:黄色
44:蓝色
45:紫色
46:深绿
47:白色
字前景颜色:30-----------39
30:黑
31:红
32:绿
33:黄
34:蓝色
35:紫色
36:深绿
37:白色
这样输出一个字符串比较完整如下
echo "\033[字背景颜色;字体颜色m 字符串\033[0m"
例:
echo "\033[41;36m helloworld \033[0m"