关于超级终端的颜色代码

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,后面的字符就都成黄色的了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值