美文网首页
改变控制台文字输出颜色

改变控制台文字输出颜色

作者: mysterism | 来源:发表于2016-03-16 16:04 被阅读1099次

打了一学期码,黑底白字的“黑框框”也许厌倦了,现在来改变一下输出,让文字鲜活起来。

一:

     最简单的办法,点击“开始”--“运行”--输入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自己倒腾去@_@

相关文章

网友评论

      本文标题:改变控制台文字输出颜色

      本文链接:https://www.haomeiwen.com/subject/hxsqlttx.html