当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 2 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 能不能让程序运行结果的某些字眼突出显示,譬如用不同的颜色标记重要信息?
帖子发表于 : 2009-08-16 9:38 

注册: 2008-11-14 20:35
帖子: 259
送出感谢: 0 次
接收感谢: 1
大家都知道,用C/C++写的程序编译后运行的输出结果和提示信息文字的颜色和终端文字颜色是一样的。现在突然想让某些输出结果或重要的提示信息突出显示,譬如说让那些文字的颜色和终端的不一样。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 能不能让程序运行结果的某些字眼突出显示,譬如用不同的颜色标记重要信息?
帖子发表于 : 2009-08-16 13:08 

注册: 2008-11-14 20:35
帖子: 259
送出感谢: 0 次
接收感谢: 1
自己解决了。


在 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");
}
return 0;
}


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 2 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译