前段时间做了个用于测试的控制台程序,要在控制台上输出日志,以便分析测试程序执行和测试结果是否正确。黑底白字的控制台程序看起来很单调,也不太容易看出是否有问题。于是输出时加了一点点代码,使每一步的执行是否正确都很清晰,出错时也一眼就能看出来了。
这个颜色是受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");也可以让控制台变成绿色字符,不过是所有的输出全都变成绿色,感兴趣也可以试试。