+ -
当前位置:首页 → 问答吧 → 颜色显示问题

颜色显示问题

时间:2010-08-24

来源:互联网

本帖最后由 285230769 于 2010-08-24 10:23 编辑

编译环境:ubuntu 10 ,gcc4.4.3
大家好,请教个问题,如下的一个程序:
  1. int main(){
  2. }
  3. void a(void){
  4. printf("aaa:12345678");
  5. printf("bbb:ssdfsdfd");
  6. }
  7. void b(void){
  8. printf("aaa:12345678");
  9. printf("bbb:ssdfsdfd");
  10. }
  11. ...
  12. ...
复制代码
如何实现所有以 printf("aaa: 开头的打印字符串字体颜色都成红色
  以 printf("bbb: 开头的打印字符串字体颜色都成蓝色
  ............

目前实现的打印效果是:
在common.h文件中定义了
#define REDLINE mprintf("\033[1;31m")
#define STOPCOLOR mprintf("\033[m")
在master.c文件中使用REDLINE ,STOPCOLOR 可以实现打印输出有颜色的字符串。
int main(){
}
void a(void){
REDLINE ;printf("aaa:12345678");STOPCOLOR;
}
但是问题是程序中有成百上千行如此开头的提示语句的话,每一句添加既显得烦也很容易遗漏。

作者: 285230769   发布时间: 2010-08-24

自己写个函数替代printf,里面判断下打印内容,决定何种颜色

作者: hellioncu   发布时间: 2010-08-24

这样可以吗?
  1. #include <stdio.h>
  2. #define REDLINE(s) printf("\033[1;31m");printf("aaa:"s);printf("\033[m");
  3. int main()
  4. {
  5.         REDLINE("12345678");
  6.         return 0;
  7. }
复制代码

作者: daybreakcx   发布时间: 2010-08-24