C/C++ 改变控制台输文字颜色:SetConsoleTextAttribute()

简介: C/C++ 改变控制台输文字颜色:SetConsoleTextAttribute()

简介


SetConsoleTextAttribute()函数是一个API设置字体颜色和背景色的函数。参数表中使用两个属性(属性之间用,隔开)。


头文件


#include<Windows.h>


函数原型


BOOL SetConsoleTextAttribute(
  HANDLE hConsoleOutput, 
  WORD wAttributes
);


参数


第一个属性获得句柄(即要设置颜色的地方),常用GetStdHandle()获得句柄。


GetStdHandle(STD_OUTPUT_HANDLE)


第二个属性设置颜色。属性相加是在属性值中间加“|”隔开即可。FOREGROUND_*或BACKGROUND_*。*值为INTENSITY或RED或GREEN或BLUE。


下面是参数可选值的列举


image.png


案例:变色输出



#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <ctime>
#include <cmath>
#include<Windows.h>
using namespace std;
int main()
{
  cout<<"原色(没有设置字体颜色)"<<endl;
  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);//设置三色相加
  cout<<"白色(红色绿色蓝色相加)"<<endl;
  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);//设置红色
  cout<<"红色(设置的颜色为红色)"<<endl;
  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);//设置绿色
  cout<<"绿色(设置的颜色为绿色)"<<endl;
  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
  //设置蓝色
  cout<<"蓝色(设置的颜色为蓝色)"<<endl;
  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);//设置红色和绿色相加
  cout<<"黄色(红色和绿色相加色)"<<endl;
  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);//设置红色和蓝色相加
  cout<<"粉色(红色和蓝色相加色)"<<endl;
  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);//设置绿色和蓝色相加
  cout<<"青色(绿色和蓝色相加色)"<<endl;
  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY);//设置颜色,没有添加颜色,故为原色
  cout<<endl;
}


相关文章
|
7月前
IntelliJ IDEA 自定义控制台输出多颜色格式功能 --- 安装Grep Console插件
IntelliJ IDEA 自定义控制台输出多颜色格式功能 --- 安装Grep Console插件
1367 0
|
4月前
|
存储 人工智能 C++
【C++】有N种颜色的小球,开始同一种颜色小球装在同一个筐里面,颜色从1到N标号。有下面两个操作(Cab),把颜色是b的 (源码)【独一无二】
【C++】有N种颜色的小球,开始同一种颜色小球装在同一个筐里面,颜色从1到N标号。有下面两个操作(Cab),把颜色是b的 (源码)【独一无二】
|
6月前
|
定位技术 C++ Windows
第一人称射击游戏 C++控制台版(未完成)
第一人称射击游戏 C++控制台版(未完成)
第一人称射击游戏 C++控制台版(未完成)
若依颜色失效怎么办?F12刷新样式不管用,回到控制台,重新点击项目链接就好了
若依颜色失效怎么办?F12刷新样式不管用,回到控制台,重新点击项目链接就好了
|
6月前
|
C++
俄罗斯方块 C++控制台版
俄罗斯方块 C++控制台版
用c语言输出有颜色的字体 printf输出 控制台程序修改文本位置 设置控制台程序窗口标题
用c语言输出有颜色的字体 printf输出 控制台程序修改文本位置 设置控制台程序窗口标题
|
7月前
|
C++
c++实现通讯录管理系统(控制台版)
c++实现通讯录管理系统(控制台版)
|
存储 算法 安全
c++游戏制作指南(一):在冷峻的控制台上,种满缤纷
c++游戏制作指南(一):在冷峻的控制台上,种满缤纷
759 0
|
7月前
|
Python C++ 算法
C/C++每日一练(20230406) 按要求求质数、两数之和、颜色分类
C/C++每日一练(20230406) 按要求求质数、两数之和、颜色分类
61 0
C/C++每日一练(20230406) 按要求求质数、两数之和、颜色分类
IntelliJ IDEA 控制台如何修改不同级别的日志颜色
IntelliJ IDEA 控制台如何修改不同级别的日志颜色
880 0