C++控制台RGB着色

注意:这种方式显示效率特别低!不建议使用本代码制作控制台游戏!

首先,先给大家看一下执行RGB操作的必备头文件

#include<windows.h>
#include<stdio.h>
#include<conio.h>
#include<iostream>
#include<cstdio>

然后进入主题

给大家看一下调用RGB前必须加入的代码段

    HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
    if (hOut == INVALID_HANDLE_VALUE)return GetLastError();
    DWORD dwMode = 0;
    if (!GetConsoleMode(hOut, &dwMode))return GetLastError();
    dwMode |= 0x0004;
    if (!SetConsoleMode(hOut, dwMode))return GetLastError();

注意这段代码不可省略!

笔者亲测,一旦省略就会出现两种现象:

  • 显示乱码

  • 什么也不显示

最后给大家介绍一下我们的重头戏:调用RGB

二话不说,先上代码

wprintf(L"\x1b[38;2;%d;%d;%dmhello,world!\n", r, g, b);

简不简单?惊不惊讶? 一行代码,直接显示彩色文字"hello,world!"!

然后我讲解一下这个代码然后使用

wprintf(L"\x1b[38;2;%d;%d;%dm|<-你要说的话->|",|<-R值->|,|<-G值->|,|<-B值->|);

注意R值G值B值的取值都在0~256之间

给大家附个RGB颜色对应表

最后

我把这些代码连接到一起方便大家白嫖学习

#include<bits/stdc++.h>
#include<ctime>
#include<windows.h>
#include<stdio.h>
#include<conio.h>
#include<iostream>
#include<cstdio>
#include<time.h>
using namespace std;
int main() {
    HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
    if (hOut == INVALID_HANDLE_VALUE)return GetLastError();
    DWORD dwMode = 0;
    if (!GetConsoleMode(hOut, &dwMode))return GetLastError();
    dwMode |= 0x0004;
    if (!SetConsoleMode(hOut, dwMode))return GetLastError();
    int r,g,b;
    while(1)
    {
        cin>>r>>g>>b ;
        wprintf(L"\x1b[38;2;%d;%d;%dmhello,world!\n", r, g, b);
    }
}

大家拿走前请标明出处,感谢大家的配合!


----------卒-----------

  • 9
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值