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

<< BACK

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


这个颜色是受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");也可以让控制台变成绿色字符,不过是所有的输出全都变成绿色,感兴趣也可以试试。

VIEW(536) | COMMENT(2) |2009-4-25 11:59:20

<< BACK

上一篇:cerr、cout、clog的区别
下一篇:关于JAVA中split()函数遇到的一点问题

本文评论

强。我什么也看不懂@。@
Trefoil的主页:http://cat-in-dog.cn/ Trefoil 2009-8-9 0:00:25

发表评论

*




*