打了一学期码,黑底白字的“黑框框”也许厌倦了,现在来改变一下输出,让文字鲜活起来。
一:
最简单的办法,点击“开始”--“运行”--输入cmd,回车,在cmd窗口的标题右击,选择”属性“,
可以见到里面有字体、颜色等的设置。挑自己喜欢的选择即可。
回到自己写的代码,运行之后就会看到颜色得到改变。
二 :
显然上面的设置只能在本地生效,如果你用很搭配的颜色谢了一个很不错的代码,想share给你的朋友,只是按照上面是不行的啦。
下面传授第二招。
我们都用过system("pause");这里其实是调用了stdlib.h的库函数,可以传进DOS命令行参数执行。
没错,就是那个DOS系统。
通过system("title XXX");//改变exe的标题,支持空格、汉字。
通过system("color XX");//改变前景色,背景色。
通过system("pause>NULL");//去掉”按任意键继续“这几个字
这样,你就可以拥有15*15种颜色的选择了。//别告诉我你打算color 00
三 :
system("color ")只能整个界面一种颜色,会不会单调了些啊、、、
没事。
我们现在不用system了,换换换。
这次要包含的库是<windows.h>
要用到的语句只有两句,一句声明并赋值,一句实行。
声明:HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
类型是HANDLE ,俗称“句柄”,GetStdHandle(STD_OUTPUT_HANDLE)是定义在库里面的一个函数,这个可以不用深入研究,往这个函数传进的参数是标准输出流的句柄,//看它的样子好像不用我多说、、、由于是库函数,内部细节不必太关心,有兴趣的同学可以自行百度一下。
就像new一个对象,或者打开一个文件,都要先判断是否成功,这里也一样。
if (hConsole != INVALID_HANDLE_VALUE )//继续执行下去
实行语句 :SetConsoleTextAttribute(hConsole, i);这里i可以是[0,255]中任何一个值,不同的值对应的颜色也不同,大致规律是用i除以16,余数和商分别是前景色和背景色,至于具体是哪种颜色,这就和color XX里面的颜色对应(别忘了转进制)。
另外,这个函数和控制小数点的一样,有效范围是从SetConsoleTextAttribute开始的所有输出,到下一次SetConsoleTextAttribute之前。
示例代码:
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
if (hConsole != INVALID_HANDLE_VALUE )
for (int i=255;i>=0;i--)
{
SetConsoleTextAttribute(hConsole, i);
cout<<"color";
}
四:
如果你觉得还不够过瘾的话、、、
看见RGL没,256*256*256自己倒腾去@_@