【c++】设置控制台窗口字体颜色和背景色(system和SetConsoleTextAttribute函数 ) |
您所在的位置:网站首页 › 字体如何设计跟背景协调 › 【c++】设置控制台窗口字体颜色和背景色(system和SetConsoleTextAttribute函数 ) |
编译后弹出的黑框框(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");而不隔开时会出现如下:![]() 颜色属性由两个十六进制数字指定——第一个对应于背景,第二个对应于前景(字体)。 每个数字可以为以下任何值(淡色与原色相差不大,但是试的时候仔细观察一下亮度的确还是有差距的,大小写均可) 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 |