初学c的小伙伴可能已经对那个黑底白字的框有些厌倦了,不妨加点颜色,增加加可读性.
废话不多说,先来看一下效果图:

/*
颜色函数SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),前景色 | 背景色 | 前景加强 | 背景加强);前景色:数字0-15 或 FOREGROUND_XXX 表示  (其中XXX可用BLUE、RED、GREEN表示) 前景加强:数字8 或 FOREGROUND_INTENSITY 表示背景色:数字16 32 64 或 BACKGROUND_XXX 三种颜色表示 背景加强: 数字128 或 BACKGROUND_INTENSITY 表示
主要应用:改变指定区域字体与背景的颜色
前景颜色对应值: 0=黑色                8=灰色  1=蓝色                9=淡蓝色        十六进制                                  2=绿色                10=淡绿色       0xa          3=湖蓝色              11=淡浅绿色     0xb 4=红色                12=淡红色       0xc  5=紫色                13=淡紫色       0xd          6=黄色                14=淡黄色       0xe          7=白色                15=亮白色       0xf 也可以把这些值设置成常量。
*/
#include <stdio.h>
#include <windows.h>
void color(short x) //自定义函根据参数改变颜色
{if(x>=0 && x<=15)//参数在0-15的范围颜色SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x);    //只有一个参数,改变字体颜色 else//默认的颜色白色SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
}
int main()
{       printf("此处为没调用颜色函数之前默认的颜色\n");//调用自定义color(x)函数 改变的颜色color(0);    printf("黑色\n");color(1);  printf("蓝色\n");color(2);  printf("绿色\n"); color(3);     printf("湖蓝色\n");color(4);     printf("红色\n");color(5);      printf("紫色\n");color(6);  printf("黄色\n"); color(7);     printf("白色\n");color(8);      printf("灰色\n");color(9);  printf("淡蓝色\n");color(10);    printf("淡绿色\n");color(11);    printf("淡浅绿色\n"); color(12);  printf("淡红色\n");color(13);    printf("淡紫色\n");color(14);    printf("淡黄色\n");color(15);    printf("亮白色\n");color(16);    //因为这里大于15,恢复默认的颜色 printf("回到原来颜色\n");//直接使用颜色函数SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_INTENSITY | BACKGROUND_GREEN | BACKGROUND_INTENSITY);printf("红色字体   前景加强 绿色背景 背景加强\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15 | 8 | 128 | 64);printf("亮白色字体 前景加强 红色背景 背景加强\n"); //声明句柄再调用函数 HANDLE JB = GetStdHandle(STD_OUTPUT_HANDLE);//创建并实例化句柄 SetConsoleTextAttribute(JB, 2 | 8);printf("颜色及对应数字表:\n");for(int i = 0;i < 1000;i ++){//color(16);printf(" "); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), i);printf("%-3d", i);color(16);printf(" "); if(i % 16 == 0)    printf("\n");}color(16);return 0;//类似的函数还有system("color XX");(X是十六进制0~F之间的数,不过这种函数改变的是整个画面,而不能让多处局部变色;
}

后期代码补充:

SetConsoleTextAttribute是Windows系统中一个可以设置控制台窗口字体颜色和背景色的计算机函数,该函数被广泛应用于软件开发中。使用此函数前,必须包含Windows.h头文件,即#include <Windows.h>。

函数定义:

BOOL SetConsoleTextAttribute(HANDLE hConsoleOutput, WORD wAttributes);

参数详解:

hConsoleOutput:控制台屏幕缓冲区的句柄。句柄必须具有GENERIC_READ访问权限。CreateFile、CreateConsoleScreenBuffer和GetStdHandle返回的句柄具有GENERIC_READ和GENERIC_WRITE访问权限。有效的访问权限包括GENERIC_READ和GENERIC_WRITE 通用访问权限。

wAttributes:字符属性。

wAttributes

颜色

对应的值

FOREGROUND_BLUE

字体颜色:蓝

1

FOREGROUND_GREEN

字体颜色:绿

2

FOREGROUND_RED

字体颜色:红

4

FOREGROUND_INTENSITY

前景色高亮显示

8

BACKGROUND_BLUE

背景颜色:蓝

16

BACKGROUND_GREEN

背景颜色:绿

32

BACKGROUND_RED

背景颜色:红

64

BACKGROUND_INTENSITY

背景色高亮显示

128

返回值:

如果函数成功,则返回值非零。
如果函数失败,则返回值为零。要获取扩展的错误信息,请调用GetLastError。

#include <stdio.h>
#include<stdlib.h>
#include <windows.h>
/**
x的取值:
属性                      意义              实际数值(十进制、十六进制、二进制)
FOREGROUND_BLUE             前景色包含 蓝色        1       0x1     0000000000000001
FOREGROUND_GREEN            前景色包含 绿色        2       0x2     0000000000000010
FOREGROUND_RED              前景色包含 红色        4       0x4     0000000000000100
FOREGROUND_INTENSITY        前景色加强           8       0x8     0000000000001000
BACKGROUND_BLUE             背景色包含 蓝色        16      0x10    0000000000010000
BACKGROUND_GREEN            背景色包含 绿色        32      0x20    0000000000100000
BACKGROUND_RED              背景色包含 红色        64      0x40    0000000001000000
BACKGROUND_INTENSITY        背景色加强           128     0x80    0000000010000000
COMMON_LVB_LEADING_BYTE     前导字节            256     0x100   0000000100000000
COMMON_LVB_TRAILING_BYTE    尾随字节            512     0x200   0000001000000000
COMMON_LVB_GRID_HORIZONTAL  顶部水平网格      1024    0x400   0000010000000000
COMMON_LVB_GRID_LVERTICAL   左竖直网格           2048    0x800   0000100000000000
COMMON_LVB_GRID_RVERTICAL   右竖直网格           4096    0x1000  0001000000000000
COMMON_LVB_REVERSE_VIDEO    前景和背景反转     16384   0x4000  0100000000000000
COMMON_LVB_UNDERSCORE       下划线             32768   0x8000  1000000000000000前景由x的二进制的前四位的值决定: 0001、0010、0100分别表示蓝、绿、红,而1000表示前景加强 ,于是前景颜色共有2^4=16种可能。 同理背景颜色是第5到8位
*/
void color(int x) {SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x);
}
int main() {printf("\n\n二进制颜色对照表:\n"); char str[8];for(int i = 0;i < 256;i ++) {// 调用颜色函数 color(i);// 获得i的2进制的值 itoa(i, str, 2); // 2即是代表转换为2进制printf("%08s", str);// 恢复默认的颜色 color(7);printf(" "); // 每行输出16个 if((i + 1) % 16 == 0)printf("\n");}printf("\n十进制颜色对照表:\n"); for(int i = 0;i < 256;i ++) {color(i);printf("%3d", i);color(7);printf(" "); if((i + 1) % 16 == 0)printf("\n");}printf("\n十六进制颜色对照表:\n"); for(int i = 0;i < 256;i ++){color(i);
//      color(i | COMMON_LVB_GRID_HORIZONTAL | COMMON_LVB_GRID_LVERTICAL | COMMON_LVB_GRID_RVERTICAL | COMMON_LVB_UNDERSCORE);printf("%02x", i);color(7);printf(" "); if((i + 1) % 16 == 0)printf("\n");
//      if((i + 1) % 16 == 0 && (i + 1) / 16 % 16 == 0) {
//          printf("\n\n");
//      } }return 0;
}

效果图:

带有网格的:

C语言教你怎么改变字体颜色相关推荐

  1. android 字体颜色选择,Android中颜色选择器和改变字体颜色的实例教程

    易采站长站为您分析Android中颜色选择器和改变字体颜色的实例教程,其中改变字体颜色用到了ColorPicker颜色选择器,需要的朋友可以参考下 1.构建一张七彩图: 我们经常看到这种样子的颜色选择 ...

  2. vba 字体颜色_Excel填充单元格颜色和改变字体颜色,用VBA是怎样实现的呢?

    大家好,我是:易天壹课堂,如果有喜欢VBA编程的朋友请关注我,如果反应好,我会为大家带来连载课程,VBA0基础到到完成整套程序开发的教程. 很多朋友就会说,你这在excel中这太简单了,直接点油漆桶就 ...

  3. html改游戏聊天字体颜色,html点击按钮改变字体颜色怎么实现

    html点击按钮改变字体颜色的实现方法:1.创建一个html文件:2.在html文件中添加html代码架构:3.在body标签里面使用button标签实现一个按钮,并使用style给按钮添加样式以及使 ...

  4. java 怎样设置文本域的字体颜色_java的JTextArea中怎么改变字体颜色

    展开全部 java swing 中JTEXTAREA不能改变字体颜色,它是纯文本组件,可以使用JTEXTPANE,通过操作DOCUMENT文档来控制JTEXTPANE显示的内容,下面的代码在一个323 ...

  5. 终端改变字体颜色和背景,控制光标,设置屏幕,更改样式与ANSI Esc(\033,\x1B,\e)转义序列用法

    简介 ANSI 转义序列( Esc , \033 , \x1B , \e )是个特殊转义字符,它可以在终端控制光标,改变字体颜色和背景,设置屏幕或者使用私有模式来改变终端样式,使终端样式更美观,功能更 ...

  6. oracle 输出字体颜色,PS改变字体颜色方法图解

    PS怎样改变字体颜色?一般有两种情况,一是正在输入文字格式,二是图片格式,我准备分类讲解,愿你有所收获. 步骤 一是正在输入文字格式 1.新建文件,打开文字工具栏,设计好字体和颜色 2.输入黑色的&q ...

  7. Element UI非活性时(Disabled),改变字体颜色

    Element UI组件在非活性时(Disabled),字体颜色太淡,显示不清楚,加上以下样式,就可以改变字体颜色了. .el-checkbox__input.is-disabled + .el-ch ...

  8. qlabel setPalette改变字体颜色失效

    今天遇到一个奇怪的事情,QLabel setPalette()改变字体颜色无效,我是想把一个qlabel的字体颜色改变成红色,但是运行后发现颜色一直没改变,都是黑色.设置颜色代码如下: QPalett ...

  9. java文本框的内容改变颜色_关于在java文本框类型组件改变字体颜色

    1.由于java可视化常用的文本框组件,比如JTextArea,JTextField属于纯文本类型,类似于电脑中的txt文本文件,最多可以设置字体的格式和大小,不能改变字体颜色,所以这就需要另外一种叫 ...

最新文章

  1. golang库context学习
  2. 用于机器人导航辅助的6自由度姿态估计的平面辅助视觉惯性里程计
  3. 1.9 GRU 单元-深度学习第五课《序列模型》-Stanford吴恩达教授
  4. oracle转义字符
  5. HTTP和HTTPS协议及工作原理分析
  6. 【iCore3 双核心板】例程三十五:HTTP_IAP_ARM实验——更新升级STM32
  7. Hibernate_2_Hibernate中对象状态及转化_一级缓存_Session详解_HQL/SQL/Criteria_一对多关系_级联操作
  8. Linux 内核实验室 —— 基于 Docker/Qemu 的极速 Linux 内核学习、开发和测试环境
  9. springcloud是如何进行服务治理的
  10. js一些平时会用到的
  11. 《RECURRENT BATCH NORMALIZATION》
  12. sql查询字段值只为汉字(桃)
  13. 基于游戏开发的C语言大作业视频集锦
  14. 基于C#的socket编程的TCP异步实现
  15. python实现异步的原理_一篇文章理解Python异步编程的基本原理
  16. 汇编语言中xor指令_汇编语言基本指令
  17. 南京邮电大学计算机科学楼,南京邮电大学bbs
  18. 一种基于区块链的物联网架构设计
  19. 通过网址自动网页截图(Selenium实现)
  20. 【文末送书】知识体系目录

热门文章

  1. OCR中文文字识别软件
  2. 水的智慧:孔子、老子、禅语 人生处世当如水,善待一切
  3. Docker 映射端口telnet不通
  4. 前端js使浏览器窗口全屏与退出----浏览器全屏时 监测通过esc按键退出全屏 (退出全屏时有页面上的相关处理)
  5. win10版本的共享网络,以及HP LaserJet 1020的共享打印机总结
  6. LabVIEW崩溃后如何排查故障
  7. Java项目校园兼职平台(含代码)
  8. java校园实习兼职
  9. 做RAID和不做RAID的区别
  10. Buffer Cache(缓冲区缓存)篇:keep pool(保留池)