C语言输出的字体和背景颜色你会设置吗!

C语言输出的字体和背景颜色你会设置吗!学了那么久C语言,难免会所写对程序输出内容颜色感到单调,总想整点酷的东西………

大家好,又见面了,我是你们的朋友全栈君。


  学了那么久C语言,难免会对自己所写的程序输出字体颜色感到单调,总想着怎么整点花里胡哨的程序……

  今天它来了,废话不多说,今天就交让我们一起学习如何改变显示框的大小字体(前景色)颜色背景颜色。通过学习我们可以写一些有趣的C语言程序: C语言趣程序:【简单计时器】【死循环之0和1】


一、window.h头文件

头文件windows.h:包含 system 函数

#include <Windows.h> //包含 system 函数
system("mode con cols=66 lines=20");
system("color 0A");

二、设置显示框的大小和颜色

system("mode con cols=66 lines=22");
//显示框大小控制函数
//cols:长 lines:宽

  注意:当cols=lines=20时,显示框的长和宽并不相等,就是说输出的显示框形状并不是正方形,而是一个长方形。

代码实例:

#include<stdio.h>
#include<Windows.h> 
int main()
{ 
   
    system("mode con cols=66 lines=20");
    printf("Dream it possible!\n");
}

运行结果:

在这里插入图片描述

三、设置控制台的字体颜色和背景色

system("color 0A");
//显示颜色控制函数,设置字体(前景色)和背景颜色
//0:背景色黑色
//A:字体颜色绿色
颜色属性由两个十六进制数字指定(颜色常量)
第一个对应于背景色,第二个对应于前景色。
每个数字可以为以下任何值:

    0 = 黑色       8 = 灰色
    1 = 蓝色       9 = 淡蓝色
    2 = 绿色       A = 淡绿色
    3 = 浅绿色     B = 淡浅绿色
    4 = 红色       C = 淡红色
    5 = 紫色       D = 淡紫色
    6 = 黄色       E = 淡黄色
    7 = 白色       F = 亮白色
  
#include<stdio.h>
#include<Windows.h> 
int main()
{ 
   
    system("color 04");   //黑色背景、红色字体
    printf("we are all the same!\n");  
    system("color 02");   //黑色背景、 绿色字体 
    printf("we are all the same!\n"); 
}

在这里插入图片描述
我们可以发现,只有第2个system("color 02");起作用,而且运行结束后面的字体也变成了绿色。

  知道了原理后,为了使运行中的字体在一个程序中显示不同的颜色,那么可以将这个系统函数封装一下,下面是对字体(前景色)颜色进行调用的函数。

void color(const unsigned short textColor)      //自定义函根据参数改变颜色 
{ 
   
    if(textColor>=0 && textColor<=15)     //参数在0-15的范围颜色
         SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), textColor);  //用一个参数,改变字体颜色
    else   //默认的字体颜色是白色
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
}

输出16种字体颜色

#include<stdio.h>
#include <windows.h>

void color(const unsigned short textColor)
{ 
   
    if(textColor>=0 && textColor<=15)
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), textColor);
    else
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
}

int main()
{ 
   
    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");   //直接使用颜色函数
}

在这里插入图片描述

如果你想要更加深入的改变前景色和背景色可以看下面这篇文章: 隐者_ C语言教你怎么改变字体颜色

实例:死循环之0和1

#include<stdio.h>
#include <windows.h>

void color(const unsigned short textColor)
{ 
          
    if(textColor>=0 && textColor<=15)
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), textColor);
    else
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
}

int main()
{ 
   
    int i;
    while(1)
    { 
   
        color(1);    printf(" 0\t\t ");
        color(2);    printf(" 0\t0 ");
        color(3);    printf(" 11\t\t\t\t\t\t\t\t\t\t ");
        color(4);    printf(" 00\t\t ");
        color(5);    printf(" 1\t\t\t\t\t\t\t ");
        color(6);    printf(" 00 ");
        color(7);    printf(" 11 \t\t");
        color(8);    printf(" 010 ");
        i++;
    }
    return 0;
}

运行结果:…………………………………………

在这里插入图片描述

通过上面介绍的功能我们就可以写一些有趣的代码:

相 见 就 是 【 猿 分 】
  希望上面的内容对你有帮助,如果上面的内容有错误,请指点,如果你有更加有趣的C程序,请在评论区分享,大家一块学习,共同进步。
  如果你感觉我写的内容对你有一定的帮助,请给我点一个 【赞】作为您对我的鼓励, 谢谢!!

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151602.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vim查找快捷键_vim搜索关键字命令

    vim查找快捷键_vim搜索关键字命令vim有强大的字符串查找功能。我们通常在vim下要查找字符串的时候,都是输入/或者?加需要查找的字符串来进行搜索,比如想搜索super这个单词,可以输入/super或者?super,两者的区别是前者是从上往下搜索,后者是从下往上搜索。那么如果我想搜索本行中某个单词,并且这个单词很长的时候,手动输入该字符串是非常麻烦的…

    2022年9月24日
    0
  • task scheduler启动不了_Task Scheduler

    task scheduler启动不了_Task Scheduler理解ITaskService对象此对象需要依赖TaskshdWindows服务,如果此服务被关闭,那么此COM对象也将会失效。

    2022年10月9日
    2
  • Silverlight网站实例资源收集(1)

    Silverlight网站实例资源收集(1)Silverlight做的试用VisualStudio2008http://www.challenges.com.cn/ 全功能的相册http://msbluelight-0.agappdom.net/e1/d/72193/13304799/63356644800/0.vpFl7uJ79e1H4xExhhjCX701HlA/zziframehtml2zz.html#%2f%2

    2022年10月18日
    3
  • kfold交叉验证_SPSS交叉验证法

    kfold交叉验证_SPSS交叉验证法一、前言在机器学习建模过程中,通行的做法是将数据分为训练集和测试集。测试集是与训练独立的数据,完全不参与训练,用于最终模型的评估。在训练过程中,经常会出现过拟合的问题,就是模型可以很好的匹配训练数据,却不能很好在预测训练集外的数据。如果此时就使用测试数据来调整模型参数,就相当于在训练时已知部分测试数据的信息,会影响最终评估结果的准确性。通常的做法是在训练数据再中分出一部分做为验证(Validation)数据,用来评估模型的训练效果。验证数据取自训练数据,但不参与训练,这样可以相对客观的评估模型对于训

    2022年9月20日
    2
  • 彩色图和深度图转点云

    彩色图和深度图转点云环境:windows10、VS2013、opencv2.49、openNi、PCL1.8opencv环境搭建参考https://www.cnblogs.com/cuteshongshong/p/4057193.htmlhttps://blog.csdn.net/u013105549/article/details/50493069PCL1.8+openNi搭建参考https://blog.cs…

    2022年4月25日
    40
  • 细说Spring——AOP详解(AOP概览)

    细说Spring——AOP详解(AOP概览)一、对AOP的初印象首先先给出一段比较专业的术语(来自百度):在软件业,AOP为AspectOrientedProgramming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而…

    2022年7月27日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号