控制台程序输出的彩色的字符串

 
古城
@ 2009.04.25
分类:技术笔记
点击:6414  评论:0
 
 
 

  前段时间做了个用于测试的控制台程序,要在控制台上输出日志,以便分析测试程序执行和测试结果是否正确。黑底白字的控制台程序看起来很单调,也不太容易看出是否有问题。于是输出时加了一点点代码,使每一步的执行是否正确都很清晰,出错时也一眼就能看出来了。


  这个颜色是受linux启动界面的启发。

  控制台程序是怎么输出的有颜色的字符串,现在分享一下:

/*
*  在控制台上输出指定颜色的字符串
*  第一个参数color表示颜色
*/
void printfc(unsigned short color, char* format,...)
{
    unsigned short oldcolor;
    HANDLE hCon=GetStdHandle(STD_OUTPUT_HANDLE);
    va_list argList;

    CONSOLE_SCREEN_BUFFER_INFO bInfo; 
    GetConsoleScreenBufferInfo(hCon, &bInfo );

    oldcolor = bInfo.wAttributes;

    SetConsoleTextAttribute(hCon,color);
    va_start( argList, format );
    vprintf( format,argList);
    va_end( argList );
    SetConsoleTextAttribute(hCon,oldcolor);
}


  就是这么一个函数就够了,比如:

printfc(10,"GREEN");


  就是显示一个绿色的字符串"GREEN"。

  另外,system("color 0a");也可以让控制台变成绿色字符,不过是所有的输出全都变成绿色,感兴趣也可以试试。

 
 
 
上一篇:delete和delete[]
 
 

本文评论

 
 

发表评论

你的评论
← 填你的昵称
以下内容非必填,可根据需要填写
← 可以展示在你的评论上方
← 不会在页面展示
← 不会在页面展示
← 只给我看?勾选上
这是一个别人称之为角落的世界
幸而,它的确是我的世界