[CSDN转载]C++控制台RGB着色

本文转载自 C++控制台RGB着色_c++ rgb颜色值-CSDN博客

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

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

  1. #include<windows.h>
  2. #include<stdio.h>
  3. #include<conio.h>
  4. #include<iostream>
  5. #include<cstdio>

然后进入主题

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

  1. HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
  2. if (hOut == INVALID_HANDLE_VALUE)return GetLastError();
  3. DWORD dwMode = 0;
  4. if (!GetConsoleMode(hOut, &dwMode))return GetLastError();
  5. dwMode |= 0x0004;
  6. 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颜色对应表

最后

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

  1. #include<bits/stdc++.h>
  2. #include<ctime>
  3. #include<windows.h>
  4. #include<stdio.h>
  5. #include<conio.h>
  6. #include<iostream>
  7. #include<cstdio>
  8. #include<time.h>
  9. using namespace std;
  10. int main() {
  11. HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
  12. if (hOut == INVALID_HANDLE_VALUE)return GetLastError();
  13. DWORD dwMode = 0;
  14. if (!GetConsoleMode(hOut, &dwMode))return GetLastError();
  15. dwMode |= 0x0004;
  16. if (!SetConsoleMode(hOut, dwMode))return GetLastError();
  17. int r,g,b;
  18. while(1)
  19. {
  20. cin>>r>>g>>b ;
  21. wprintf(L"\x1b[38;2;%d;%d;%dmhello,world!\n", r, g, b);
  22. }
  23. }

本文转载自 [C++控制台RGB着色_c++ rgb颜色值-CSDN博客](https://blog.csdn.net/heveral/article/details/121220483)

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