send_char_com(0x1B); 单字节发
send_string_com("[34m");
在 ANSI 兼容终端(例如 xterm、rxvt、konsole 等)里, 可以用彩色显示文本而不仅仅是黑白。但是我们自己编写的程序能否输出彩色的字符呢?当然答案是肯定的。下面的语句就输出高亮的黑色背景的绿色字。
printf("/033[1;40;32m%s/033[0m",” Hello,NSFocus/n”);
/033 声明了转义序列的开始,然后是 [ 开始定义颜色。后面的 1 定义了高亮显示字符。然后是背景颜色,这里面是40,表示黑色背景。接着是前景颜色,这里面是32,表示绿色。我们用 /033[0m 关闭转义序列, /033[0m 是终端默认颜色。
通过上面的介绍,就知道了如何输出彩色字符了。因此,我就不再多说了。下面是对于彩色字符颜色的一些定义:
前景 背景 颜色
---------------------------------------
30 40 黑色
31 41 紅色
32 42 綠色
33 43 黃色
34 44 藍色
35 45 紫紅色
36 46 青藍色
37 47 白色
代码 意义
-------------------------
0 终端默认设置
1 高亮显示
4 使用下划线
5 闪烁
7 反白显示
8 不可见
下面给出了一个C语言的示例:
///
//filename:tracelog.c
#include <stdio.h>
int main(int argc,char **argv)
{
unsigned char attr[]={0,1,4,5,7,8};
unsigned char fore[]={30,31,32,33,34,35,36,37};
unsigned char back[]={40,41,42,43,44,45,46,47};
int adx,fdx,bdx;
for(bdx=0;bdx<sizeof(back);bdx++)
{
for(fdx=0;fdx<sizeof(fore);fdx++)
{
for(adx=0;adx<sizeof(attr);adx++)
{
printf("/033[%d;%d;%dmhello,NSFocus!!!/033[0m",
attr[adx],fore[fdx],back[bdx]);
printf("<==attr=%d,fore=%d,back=%d/n",
attr[adx],fore[fdx],back[bdx]);
}
}
printf("/n");
}
}
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=637294
黑色 红色 绿色 棕色 蓝色 紫色
浅蓝色 灰色
请在回复的时候把上面的颜色字代码复制到写字板上!
第一篇:如何让自己的昵称动起来,字变大?
进入[资料配置],在[修改昵称]中,在你的昵称前加上
<marquee><h1>, <marquee>是让昵称动起来,<h1>、<h2>、
<h3>、<h4>、<h5>、<h6>是让字大起来。
第二篇:如何做彩色签名?
它是采用几个字符串来作为颜色控制符的,只要在你想要改变颜
色的字符前加上一串颜色控制符,你就可以得到一段彩色文
字了。网易共提供了9个颜色控制字符串,你最多可以在网
易签名档里设置8种颜色,它们分别是:
[30m 黑色 [31m 红色 [32m 绿色 [33m 棕色
[34m 蓝色 [35m 紫色 [36m 浅蓝色 [37m 灰色
[38m 灰色
如果你想让“我是一名新手,请各位大侠多多指教”这名话
变成红色的话,你只要在这句话的前面加上“■[31m”这个
字符串就行了,也就是说,只要你在网易签名档中加入
“■[31m我是一名新手,请各位大侠多多指教”这段话,
在发贴子时指定用这个签名档,别人就可在你的贴子下面看
到一句红色的“我是一名新手,请各位大侠多多指教” 的
签名了。就这么简单!不过你不要高兴得太早了,你一定
看到那个黑色的方块块了,那是个什么字符,又是怎么得
来的呢?请看下文。
这个字符其实就是ESC键的ASCII码,在一般情况下显示
为空格,而不是上面的黑色方块块,但千万要注意不是按空
格键得来的空格!它在一般的文字处理工具中是无法通过键
盘输入得到的!呵呵!你没被吓着吧?得到它是有点困难,
不过不要急,还是有办法的。既然它无法在一般文字处理工
具中通过键盘输入得到,那么我们只有动用DEBUG或PCTOOL
工具了。你可以先用记事本(NotePad)建立一个含有一个
空格(16进制代码为0x20)的文本文件(如“ [34m”),
再用上面提到的两个工具把这个文件中的空格字符改为
ESC键字符(即"0x20"改为“0x1B”),再保存文件,这样
你的这个文本文件中那个普通空格就变为ESC键这个特殊空
格了。打开你的签名,将此文本文件中的“ [34m”复制,
粘贴在你想变色的文字前即可,在你的签名中不同位置粘
贴不同的内容(如:“ [33m"),你将会得到五颜六色的
签名。
为什么要用这个特殊的字符来控制颜色呢?这是因为
早期的终端仿真程序就是用0x1B(ESC字符)这个字符作为
“换码序列”,ESC字符后面的数字通常用于控制终端光
标的位置或者字符的颜色。
可是我既不会用DEBUG,也不会用PCTOOL,怎么办?
是不是没的办法了呢?不是!还是有捷径可走的,呵呵!
什么捷径?那当然是借啰,向别人借!虽然你不能用键?
盘输入这个字符,但它可在文本文件中保存,也可在
WINDOWS的剪贴板,电子邮件,网易的消息发送中传递,
所以你尽可以通过这些途径向你的那些用上了彩色签名
的朋友去借,我相信他(她)绝对不会因为一个字符而
跟你过不去的。呵呵!祝你好运!
告诉我吧,我可以帮帮你的呵呵。
C51编程:请教关于超级终端程序的字体颜色!! [wuyisq] 2006-8-15 11:53:59
我用的是KEIL C ,写一点简单的管理功能,用超级终端实现,请问我如何实现字体颜色的改
变?? 请那位高手指点一下.谢谢哈!!!!
加入颜色控制字符 [qllaoda] 2006-8-15 13:16:23
例如 0x1b加上[1;33m,后面的字符就都成黄色的了。