控制台是什么

让代码『跑』起来

当代码执行的时候,会生成一个控制台命令框,把我们想要的内容打印显示。这个窗口我们称之为计算机控制台

命名行界面

cmd 命令提示符

控制台

改变控制台前景色、背景色

只需用system()函数调用一个cmd命令就行了。

函数原型: int system (const char* command);

例:

#include <stdio.h>
#include <stdlib.h>   //for system()int main()
{//@color表示 设置控制台前景色和背景色,后跟参数system("@color 0a"); printf("Hello World!\n");return 0;
}

运行结果:

比如 system("color 5E"); 这个就是紫色背景,淡黄色字体

如果要让输出的每一个单词的颜色都不同(或者说输出多种颜色的字),能不能呢?

have a try:

#include <stdio.h>
#include <stdlib.h>   //for system()int main()
{system("@color 0a"); //黑色背景 淡绿色文字printf("Hello World!\n");system("@color 0f"); //黑色背景 亮白色文字printf("Hello World!\n");system("@color 04"); //黑色背景 红色文字printf("Hello World!\n");return 0;
}

运行结果:

前面设定的颜色都被最后一种覆盖了,所以用system()函数不能实现输出多种颜色的文字

调用系统API设置控制台文字属性

又是一波代码强行袭来

#include <stdio.h>
#include <Windows.h>
int main()
{printf("Hello World!\n");   //此时输出的是默认属性的文字HANDLE hdl =  GetStdHandle(STD_OUTPUT_HANDLE);   //获取控制台句柄SetConsoleTextAttribute(hdl,  FOREGROUND_GREEN);   //设置文字属性:绿色printf("Hello World!\n");   //此时输出的是绿色的文字SetConsoleTextAttribute(hdl,  FOREGROUND_RED);  //设置文字属性:红色printf("Hello World!\n");   //此时输出的是红色的文字SetConsoleTextAttribute(hdl,  FOREGROUND_BLUE); //设置文字属性:蓝色printf("Hello World!\n");   //此时输出的是蓝色的文字SetConsoleTextAttribute(hdl,  FOREGROUND_INTENSITY);   //设置文字属性:高亮printf("Hello World!\n");   //此时输出的是高亮的文字SetConsoleTextAttribute(hdl,  FOREGROUND_BLUE | FOREGROUND_INTENSITY); //设置文字属性:蓝色、高亮printf("Hello World!\n");   //此时输出的是亮色、加亮的文字SetConsoleTextAttribute(hdl,  FOREGROUND_BLUE | FOREGROUND_GREEN |  FOREGROUND_RED);  //设置文字属性:白色printf("Hello World!\n");   //此时输出的是白色的文字   也就是说这三种颜色属性可以叠加SetConsoleTextAttribute(hdl,  FOREGROUND_BLUE | FOREGROUND_GREEN |  FOREGROUND_RED | FOREGROUND_INTENSITY);   //设置文字属性:白色、高亮printf("Hello World!\n");   //此时输出的是白色、加亮的文字CloseHandle(hdl); //要记得关闭Handle,释放 Handle 资源return 0;
}     

运行结果:

既然有 FORE 颜色(前景色(字体的颜色)),自然也就存在 BACK 颜色(背景色)

have a try:

#include <stdio.h>
#include <Windows.h>
int main()
{printf("Hello World!\n");   //此时输出的是默认属性的文字HANDLE hdl =  GetStdHandle(STD_OUTPUT_HANDLE);   //获得控制台句柄SetConsoleTextAttribute(hdl,  BACKGROUND_RED);  //设置文字属性:控制台背景色,红色底色printf("Hello World!\n");   //此时输出红色的底色,只是文字的底色,不是控制台的背景色SetConsoleTextAttribute(hdl,  FOREGROUND_GREEN | BACKGROUND_RED |  BACKGROUND_BLUE | BACKGROUND_GREEN |  BACKGROUND_INTENSITY);//设置文字属性:绿色,底色:白色、加亮,printf("Hello World!\n");   //此时输出红色的底色,只是文字的底色不是控制台的背景色return 0;
}

运行结果:

SetConsoleTextAttribute() 函数第二个参数可以有文字的颜色、底色以及加亮几种,颜色只有:红、绿、蓝三种,要想显示其他颜色,可以利用光的三原色进行叠加

第二个参数总共有八个宏定义:

  • 文字本身颜色: FOREGROUND_RED、FOREGROUND_GREEN、FOREGROUND_BLUE

  • 文字底色:     BACKGROUND_RED、BACKGROUND_GREEN、BACKGROUND_BLUE

  • 文字加亮:     FOREGROUND_INTENSITY

  • 底色加亮:     BACKGROUND_INTENSITY

以上对文字属性进行设置的函数及宏:都在<Windows.h>头文件里已定义


常见问题汇总

  • 为什么我们开始时用的是do-while循环:

因为,我们第一次选择play就要进到游戏中去,第一次选择退出,就直接退出去了。

  • 编译出错:***函数重定义,不同的基类型

因为:函数的排列出现问题,(.c) 文件中需要注意『函数定义在前,函数使用在后』

  • 其他问题

可以直接在评论区留言


感谢阅读本篇博客,如果有不错的建议或意见,欢迎在评论区留言,喜欢的话,麻烦点个赞和关注哦~~~

探索篇 | C语言改变控制台输出内容颜色相关推荐

  1. C 语言的控制台输出只是 “黑底白字”吗 ?

    文章目录 前言 一.如何改变控制台输出的颜色? 二.单纯只设置文字颜色 总结 前言 C 语言控制台输出的只是 "黑底白字"吗 ?不!它也可以是有彩色的,原来我们可以调用 Windo ...

  2. CLion 控制台输出内容乱码问题的解决方法

    CLion 控制台输出内容乱码问题的解决方法 参考文章: (1)CLion 控制台输出内容乱码问题的解决方法 (2)https://www.cnblogs.com/flydangerfox/p/100 ...

  3. C/C++改变控制台的字体颜色

    当你接触编程的时候,是不是总是有这种感受:白字黑色的控制台总是很枯燥,正如你用大脑运行这段代码 #include <stdio.h> #include <conio.h> in ...

  4. IntelliJ IDEA 自定义控制台输出多颜色格式功能 --- 安装Grep Console插件

    IntelliJ IDEA 自定义控制台输出多颜色格式功能 1. 打开IDEA设置面板 2. 点击插件(Plugins)安装Grep Console 3. 重启IDEA后设置颜色 4. 效果图 5. ...

  5. idea 未实现接口红线提示,重复代码波浪线提示,自动换行,控制台输出内容自动换行...

    01,Could not autowire. No beans of 'UserMapper' type found 01.1,问题描述,通过反射动态实现的接口在调用时会出现以上提示,常见的如 ORM ...

  6. 第56篇 QML 之 JS控制台输出、注释语句、标识符、字面量与变量

    目录 1.控制台输出 QML 组件 2.注释语句 3.JS 标识符 标识符

  7. 通过控制台输出各种颜色的字符——ANSIConsole、JANSI

    默认的jdk控制台只能跟随系统而定,在eclipse中可以定义各种来源的输出颜色,但是如果你想按照的app输出内容到控制台,只能按照前两者来定,而且默认只有黑和err的红,有时候开发中输出的日志信息较 ...

  8. 在浏览器控制台输出内容 console.log(string);

    在浏览器控制台中写如数据 1添加    <script type="text/javascript">djConfig = { isDebug: true };< ...

  9. c语言改变doss窗口的颜色,C语言第三次模拟练习题部分解答

    <C语言第三次模拟练习题部分解答>由会员分享,可在线阅读,更多相关<C语言第三次模拟练习题部分解答(20页珍藏版)>请在装配图网上搜索. 1.单项选择1. 题号:13334若有 ...

最新文章

  1. 我看过的编译原理方面的好文章
  2. OpenCV Cut Image via ROI 根据兴趣区域剪裁图片
  3. 华为云mysql端口号_华为云云耀服务器远程连接mysql,报错10038端口配置问题。
  4. WCF使用Json传输的一个BUG
  5. 系统调用服务号 linux 2.6.32
  6. C++ STL vector详解
  7. Mac Eclipse 主题选择
  8. 图文详解Modbus-RTU协议
  9. 小学计算机专业说课稿模板,小学信息技术说课稿集锦
  10. escharts 柱状图 百分比_Echarts柱状图百分比显示
  11. html分享到微博,h5页面分享到微信、朋友圈、新浪微博、QQ空间、QQ好友组件
  12. 绿色碳点溶液|碳量子点激发波长:365nm发射波长:525nm
  13. VMWare 15虚拟机下载和安装说明兼容WIN10
  14. vscode C++ debug: lldb: unrecognized option `--interpreter=mi'
  15. 外包公司值不值得去?
  16. 《Digital Design and Computer Architecture》7.4 多周期CPU(1)
  17. 你了解HashMap吗?
  18. android 仿QQ好友动态 title滑动渐变
  19. oracle+函数怎么写if,Oracle NULLIF函数
  20. HTML中input标签和button标签区别

热门文章

  1. 纯电动汽车Matlab/Simulink软件模型,纯电动汽车动力性、经济性仿真模型
  2. 实测十款连锁店管理系统,专为纠结的连锁店老板打造!
  3. SpringCloud Alibaba实战(12:引入Dubbo实现RPC调用)
  4. sas9.2智能平台连接oracle数据库操作说明文档,SAS9.2 SID更新
  5. python软件是干嘛的-Python到底能做什么?
  6. lambda函数引用学习记录
  7. 什么是正直型人格?正直型性格的优劣势及职业分析
  8. oracle查询营业执照不对的sql
  9. Nginx rewrite 详解
  10. 工科数学分析 MA_12 Vectors and the Geometry of Space (上篇)