VT100小节
时间:2010-09-13 来源:lin_13824307069
|
VT100是一个古老的终端定义,后面出现的终端几乎都兼容这种终端。VT100控制码是用来在终端扩展显示的代码。比如果终端上任意坐标用不同的颜色显示字符。有时又称为ANSI Escape Sequence. 这样想做一个跨平台的小游戏用空上再合适不过。 所有的VT100控制符是 \033打头(即ESC的ASCII码)用输出字符语句来输出。可以在命令行用echo -ne 命令,或者在C程序中用printf来输出VT100的控制字符。 具体格式有两种,
如 \33[40m ,表示让后面字符输出用背景黑色输出 \33[0m表示取消前面的设置。 其中前景(字符颜色)/背景颜色需要同时输出。
\033[K 清除从光标到行尾的内容 \033[nC 光标右移n行 VT100控制码 VT100控制码归类如下。 \33[nA 光标上移n行 \33[nB 光标下移n行 \33[nC 光标右移n行 \33[nD 光标左移n行 \33[y;xH设置光标位置 \33[2J 清屏 \33[K 清除从光标到行尾的内容 \33[s 保存光标位置 \33[u 恢复光标位置 \33[?25l 隐藏光标 \33[?25h 显示光标 VT100数字型控制码 \33[0m 关闭所有属性 \33[1m 设置高亮度 \33[4m 下划线 \33[5m 闪烁 \33[7m 反显 \33[8m 消隐 \33[30m -- \33[37m 设置前景色 \33[40m -- \33[47m 设置背景色 VT100关于颜色的说明. VT100的颜色输出分为,注意要同时输出前景的字符颜色和背景颜色。 背景颜色范围:40----49 40:黑 41:深红 42:绿 43:黄色 44:蓝色 45:紫色 46:深绿 47:白色 前景字符颜色:30-----------39 30:黑 31:红 32:绿 33:黄 34:蓝色 35:紫色 36:深绿 37:白色 这样输出一个字符串比较完整如下 echo -ne "\033[字背景颜色;字体颜色m字符串\033[0m" 例: echo -ne "\033[41;36m something here \033[0m" 常见样例 echo -ne "\033[2J" #清屏 echo -ne "\033[47;30m Andrew Huang \033[0m" #黑底白字输出Andrew Huang echo -ne "033[5;10H \033[42;33m abc \033[0m" #(10,5)输出绿底黄字。 关于VT100控制码编码 VT100只要printf打印相应的字符串即可支持相应功能,但是因为输出控制符虚列太多于难记,因此可通用一些宏来简化其操作。 参考资料: http://people.ofset.org/~ckhung/b/mi/textmode.php |
1 #include <stdio.h>
2 #include <string.h>
3
4 int main(void)
5 {
6 char *s = "abcdefg";
7 char array[100];
8 int l,j,k;
9 memset(array,' ',sizeof(array));
10 l = strlen(s);
11 strcpy(array,s);
12 while(1)
13 {
14 if (array[l] == ' ')
15 array[l] = '_';
16 else
17 array[l] = ' ';
18 array[l+1] = '\0';
19 usleep(500000);
20 printf("\033[10;1H");
21 printf("array = %s,n = %d\n",array,strlen(array));
22 }
23 return 1;
24
25 }
~
相关阅读 更多 +
排行榜 更多 +