对于初学者来说,本节涉及到的代码比较复杂,名字也不容易记住,大家只需要把代码复制到编译器,看一下运行效果就可以。本节重在演示C语言能做什么,而不是教授大家知识点(这些知识点也不是C语言的重点),所以,不理解的就放过吧,不会影响后面的学习。

C语言不总是“黑底白字”,它也可以是彩色的,可以调用Windows.h头文件下的SetConsoleTextAttribute函数改变文字和背景颜色。

调用形式为:

SetConsoleTextAttribute( HANDLE hConsoleOutput, WORD wAttributes );

hConsoleOutput表示控制台缓冲区句柄,可以通过GetStdHandle(STD_OUTPUT_HANDLE)来获得;wAttributes表示文字颜色和背景颜色。

这里不去追究HANDLE的含义,后续在Windows开发中会详细讲解。

WORDwindows.h中定义,等同于unsigned short,使用低4位表示文字(前景)颜色,高4位表示文字背景颜色,所以它的取值为xx。x为一位16进制数,即0~F都可以使用,可以随意组合。

0~F 分别代表的颜色如下:

0 = 黑色    8 = 灰色    1 = 淡蓝      9 = 蓝色
2 = 淡绿    A = 绿色    3 = 湖蓝      B = 淡浅绿  
C = 红色    4 = 淡红    5 = 紫色      D = 淡紫  
6 = 黄色    E = 淡黄    7 = 白色      F = 亮白

例如,将背景设置为淡绿色,文字设置为红色:

  1. #include <stdio.h>
  2. #include <windows.h>
  3. int main(){
  4. HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  5. SetConsoleTextAttribute(hConsole, 0x2C );
  6. puts("C语言中文网");
  7. return 0;
  8. }

运行结果:

如果只希望设置文字颜色,背景保持黑色,那么也可以只给出一位16进制数,例如:

SetConsoleTextAttribute(hConsole, 0xC );  //将文字颜色设置为红色
SetConsoleTextAttribute(hConsole, 0xF );  //将文字颜色设置为白色

再来看一个例子:

  1. #include <stdio.h>
  2. #include <windows.h>
  3. int main(){
  4. HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  5. SetConsoleTextAttribute(hConsole, 0xC );
  6. puts("红色文字");
  7. SetConsoleTextAttribute(hConsole, 0xF );
  8. puts("白色文字");
  9. SetConsoleTextAttribute(hConsole, 2 );
  10. puts("淡绿色文字");
  11. return 0;
  12. }

运行结果:

彩色版的C语言,让文字更漂亮相关推荐

  1. 立体栅格地图_更新丨智图栅格数据—彩色版地图,智臻智美,带来更好的业务体验...

    -www.geoq.cn- 智图栅格数据 彩色版地图 更新 -2019Q3- √ 数据内容持续丰富 √ 行政区划保持最新 √ 显示效果体验更佳 壹 数据丰富程度 兴趣点数量由3100万增加至3300万 ...

  2. 《Adobe Illustrator CC 2014中文版经典教程(彩色版)》目录—导读

    版权声明 Adobe Illustrator CC 2014中文版经典教程(彩色版) Adobe® Illustrator® CC Classroom in a Book (2014 release) ...

  3. 《Adobe Illustrator CS6中文版经典教程(彩色版)》目录—导读

    版权声明 Adobe Illustrator CS6中文版经典教程(彩色版) Authorized translation from the English language edition, ent ...

  4. 《Adobe Premiere Pro CC经典教程(彩色版)》——2.3 设置序列

    本节书摘来自异步社区<Adobe Premiere Pro CC经典教程(彩色版)>一书中的第2课,第2.3节,作者 [英国]Maxim Jago(马克西姆 亚戈),译者 陈昕昕,郭光伟 ...

  5. 《Adobe Photoshop CS6中文版经典教程(彩色版)》—第2课2.10节使用内容识别修补...

    本节书摘来自异步社区<Adobe Photoshop CS6中文版经典教程(彩色版)>一书中的第2课2.10节使用内容识别修补,作者[美]Adobe公司,更多章节内容可以访问云栖社区&qu ...

  6. 《Adobe Photoshop CS6中文版经典教程(彩色版)》—第2课2.4节在Camera Raw中调整颜色...

    本节书摘来自异步社区<Adobe Photoshop CS6中文版经典教程(彩色版)>一书中的第2课2.4节在Camera Raw中调整颜色,作者[美]Adobe公司,更多章节内容可以访问 ...

  7. 《Adobe Illustrator CC 2014中文版经典教程(彩色版)》—第1课1.4节修改图稿的视图...

    本节书摘来自异步社区<Adobe Illustrator CC 2014中文版经典教程(彩色版)>一书中的第1课1.4节修改图稿的视图,作者[美]Brian Wood,更多章节内容可以访问 ...

  8. 《Adobe Photoshop CS6中文版经典教程(彩色版)》—第1课1.4节在Photoshop中还原操作...

    本节书摘来自异步社区<Adobe Photoshop CS6中文版经典教程(彩色版)>一书中的第1课1.4节在Photoshop中还原操作,作者[美]Adobe公司,更多章节内容可以访问云 ...

  9. 图解HTTP+彩色版 pdf版学习(更新中)

    图解HTTP+彩色版 pdf版学习 第一章 了解Web及网络基础 3.27 使用 HTTP 协议访问 Web 当我们在网页浏览器(Web browser)的地址栏中输入 URL时,Web 页面是如何呈 ...

最新文章

  1. 怎么提高大表和小表的连接查询效率?
  2. Apache理论与实战
  3. Citrix XenServer 关键配置文件
  4. 【数据立方】数据立方体的有效计算、物化materialization,索引OLAP数据
  5. spring webmvc使用ResponseBody前,在配置文件中的配置
  6. 信息安全之仿射密码加密和解密
  7. 安装SQL提示重启电脑失败,解决办法
  8. 最长递增子序列 子串_最长递增奇偶子序列
  9. html加载状态,js等待页面加载完成
  10. 开源软件公司易犯的 5 大错误,又该如何避免?
  11. Allure2--自动化测试报告生成
  12. JavaScript学习(六十六)—字符串对象常用的属性和方法总结以及数组元素的排序问题
  13. 36. 理解copy_if算法的正确实现
  14. 第三届 Apache Flink 极客挑战赛暨 AAIG CUP 攻略发布!
  15. zhaow游戏知识问答
  16. 大学生HTML作业篮球网页 HTML作业篮球网页期末作业 HTML+CSS篮球网页 HTML学生作业体育篮球网页
  17. 浅谈MySQL Binlog
  18. android手机 无电池开机画面,华为手机开不了机停在开机画面怎么办【详解】
  19. Spring中的静态工厂与实例工厂
  20. OSChina 周二乱弹 ——现在我满眼都是小星星

热门文章

  1. 幸福人生讲座(四):孝道与仁爱是根本
  2. RNA序列转DNA序列
  3. 3D打印S3d参数设置
  4. 全球与中国反刍动物饲料市场现状及未来发展趋势
  5. 计算机英语教学教案模板,英语-教学设计(模板及范例).doc
  6. 算法:取出一包协议中所有“0x7E”之间的数据
  7. 去除txt格式电子书不正确换行的方法
  8. yolo图像检测数据集格式转换:xml 与 txt格式相互转换
  9. STM32开发板动态二维码显示
  10. ESP32 入门笔记03:PWM (ESP32 for Arduino IDE)