【c++】设置控制台窗口字体颜色和背景色(system和SetConsoleTextAttribute函数 )

您所在的位置:网站首页 字体如何设计跟背景协调 【c++】设置控制台窗口字体颜色和背景色(system和SetConsoleTextAttribute函数 )

【c++】设置控制台窗口字体颜色和背景色(system和SetConsoleTextAttribute函数 )

2024-02-27 05:03| 来源: 网络整理| 查看: 265

编译后弹出的黑框框(exe 可执行文件)总是黑底白字,在做实践大作业时想到尝试改变字体的颜色与背景色,搜索发现有system和SetConsoleTextAttribute两个函数,各有长处,详细了解一下,为了以后的使用。

操作平台:Microsoft Visual Studio 2019 

[content]

system函数 (Windows系统)

函数功能

函数原型 (注:指令大小写均可)

函数参数规定

函数缺点

示例程序(system函数)

SetConsoleTextAttribute函数  

函数头文件 

函数功能 

函数原型

函数参数 

示例程序(SetConsoleTextAttribute函数)

system函数 (Windows系统)

 系统函数,不用引其他的头文件

函数功能

发出一个DOS命令

DOS命令——指DOS操作系统的命令,是一种面向磁盘的操作命令,主要包括目录操作类命令、磁盘操作类命令、文件操作类命令和其它命令。

 调用color函数可以改变控制台的前景色和背景从而达到我们的目的,即设置默认的控制台前景和背景颜色。(还有以下功能举例);

system("pause")可以实现冻结屏幕,便于观察程序的执行结果;system("CLS")可以实现清屏操作。(清屏后原数据不会被清除) 函数原型 (注:指令大小写均可) //system函数原型 int system(const char *command); //system实现color功能的函数定义语句 system("color 01"); //设置背景为黑色,字体为蓝色 函数参数规定

由函数原型可知system函数的参数为const char*类型,则使用时注意

【对于system函数而言】要在system的()内加""【对于color函数而言】在""内color与所需输入的颜色属性中间用空格隔开,不能用逗号,也不能直接输入而不隔开

错误输入参数时会出现的情况:

直接输入system("colorf4");而不隔开时会出现如下:97d5fc09e68d4e03a2b8b3d50c498ec9.png用逗号时会出现system(“color ”)的功能及使用方式;   COLOR  [attr] /*attr   指定控制台输出的颜色属性*/ 示例: "COLOR fc" 在亮白色上产生淡红色(即背景为白色,字体为红色) //应用示例 system("color f4"); //红字白底

颜色属性由两个十六进制数字指定——第一个对应于背景,第二个对应于前景(字体)。

每个数字可以为以下任何值(淡色与原色相差不大,但是试的时候仔细观察一下亮度的确还是有差距的,大小写均可)

  0 = 黑色       8 = 灰色 1 = 蓝色       9 = 淡蓝色 2 = 绿色       A = 淡绿色   3 = 浅绿       B = 淡浅绿色   4 = 红色       C = 淡红色   5 = 紫色       D = 淡紫色   6 = 黄色       E = 淡黄色   7 = 白色       F = 亮白色

特别注意: 

①如果最初使用system("color")时没有给定任何参数(此处的参数是指attr,即颜色属性),此命令会将颜色还原到 CMD.EXE 启动时的颜色(即仍是原始的黑底白字)(这个值来自当前控制台窗口、/T 命令行开关或 DefaultColor 注册表值。);

②若在最后想把控制台还原到最初的黑底白字,不给参数是无法实现这一功能的,只能使用 system("color 07"); 还原到黑底白字,在最后使用system("color")不给参数是无法实现把颜色还原到黑底白字的;

③如果尝试使用相同的前景和背景颜色来执行COLOR 命令,COLOR 命令会将 ERRORLEVEL 设置为 1(即仍是黑底白字)。

函数缺点

运行下面示例程序会发现,system函数加上color函数这个指令后可以对控制台文本属性进行改变,但是一改变就是整个控制台发生变化,只能把控制台改成一种颜色,无法达到我们想要指定一行的文本发生颜色改变(即改成多种颜色)的效果,因此,有下面SetConsoleTextAttribute函数,这个函数更加灵活。

示例程序(system函数) #include using namespace std; int main() { string q; //设置一个值便于观察颜色变化 system("COLOR f9"); //此处大写,设置为白底蓝字 cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3