在嵌入式开发,服务器开发中,经常用到printf,在项目比较大,或者打印信息比较多时,可以通过打印的字符串的颜色的不同来凸显重要信息。
一,printf打印出不同颜色
printf("\033[字背景颜色;字体颜色m字符串\033[0m" );
颜色代码:
QUOTE:
字背景颜色范围: 40--49 字颜色: 30--39
40: 黑 30: 黑
41: 红 31: 红
42: 绿 32: 绿
43: 黄 33: 黄
44: 蓝 34: 蓝
45: 紫 35: 紫
46: 深绿 36: 深绿
47: 白色 37: 白色
ANSI控制码:
QUOTE:
\033[0m 关闭所有属性
\033[1m 设置高亮度
\03[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[30m -- \033[37m 设置前景色
\033[40m -- \033[47m 设置背景色
\033[nA 光标上移n行
\03[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[y;xH设置光标位置
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\33[?25h 显示光标
二,测试实例
点击(此处)折叠或打开
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-
-
- #define COLOR_NONE "\033[0m"
- #define FONT_COLOR_RED "\033[0;31m"
- #define FONT_COLOR_BLUE "\033[1;34m"
-
- #define BACKGROUND_COLOR_RED "\033[41m"
-
- #define BG_RED_FONT_YELLOW "\033[41;33m"
-
- void print_test(void)
- {
- printf(FONT_COLOR_RED"hello world\n"COLOR_NONE);
-
- printf(FONT_COLOR_BLUE"wo shi zhong guo ren\n"COLOR_NONE);
-
- printf(BACKGROUND_COLOR_RED"jxj\n"COLOR_NONE);
-
- printf(BG_RED_FONT_YELLOW"test %s color\n"COLOR_NONE,"printf");
- }
-
- int main(int argc,char *argv[])
- {
- print_test();
-
- return 0;
- }
测试结果
![](http://blog.chinaunix.net/attachment/201410/28/28458801_14144868060F15.jpg)
三,问题遗漏
1,如何在文件中也实现这样的功能。
猜想:使用 fprintf 应该可以实现类似的功能。
-------------http://blog.chinaunix.net/uid-28458801-id-4581042.html