如果学C语言久了,难免会对弹出的黑窗口感到厌烦,那这时候如果能改一下黑窗口的背景颜色和字体颜色,也许会给自己一个好一点的心情。废话不多说,现在开始教你怎么简单地改变窗口的字体颜色和背景颜色。

一、首先,当然是引入头文件,除了常规的输入输出<stdio.h>,还要将<windows.h>引入,因为要调用系统的函数;

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

二、标准库定义了好多的颜色常量,不过都很长不好记,我们先来记一下常用的,简单地常量值代表的颜色;

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

三、为了方便,可以将颜色用一个枚举来定义

enum Color
      black, blue, green, lakeBlue, red, purple, yellow, white, gray,
      lightBlue, lightGreen, lightSimpleGreen, lightRed, lightPurple, lightYellow, brightWhite  

四、知道了颜色的常量值,我们就可以直接调用system("color 07")函数来改变背景色和字体色,其中,"color 07"中的0和7代表的是两个数字,上面第二点有说到,0是黑色,7是白色,这是调试窗口的默认颜色,我们可以将"color 07"改成"color 12"就会看到背景色变为了蓝色,字体变为了绿色。知道了原理后,你就可以不用继续往下看,直接用system("color 前景色值背景色值")函数来改变颜色了。不过为了更好地运用和记忆,可以将这个系统函数封装一下;

void setColor(unsigned short backColor=0, unsigned short textColor=7){
	char command[9]="color 07";		//默认颜色	
	command[6]='0'+backColor;		//将backColor变量改为字符型 
	command[7]='0'+textColor;		//将textColor变量改为字符型 
	system(command);				//调用系统函数 

五、这时候可以不用system函数了,可以调用setColor(1,2)函数来将窗口背景色改为蓝色,将字体改成绿色,另外,因为之前设置了枚举,调用setColor(green,red)也有一样的效果;

setColor(1,2);

六、以上代码合并起来:
#include <stdio.h>
#include <windows.h>
enum Color
      black, blue, green, lakeBlue, red, purple, yellow, white, gray,
      lightBlue, lightGreen, lightSimpleGreen, lightRed, lightPurple, lightYellow, brightWhite  
void setColor(unsigned short textColor=0, unsigned short backColor=7){
	char command[9]="color 07";		//默认颜色	
	command[6]='0'+backColor;		//将backColor变量改为字符型 
	command[7]='0'+textColor;		//将textColor变量改为字符型 
	system(command);				//调用系统函数 
int main(){	
	setColor(1,2);
	//setColor(blue,green);
	printf("蓝色背景,绿色字体\n\n");

七、运行效果如下: black, blue, green, lakeBlue, red, purple, yellow, white, gray, lightBlue, lightGreen, lightSimpleGreen, lightRed, lightPurple, lightYellow, brightWhite void setColor(unsigned short backColor=0, unsigned short textColor=7){ char command[9]="color 07"; //默认颜色 command[6]='0'+backColor; //将backColor变量改为字符型 command[7]='0'+textColor; //将textColor变量改为字符型 system(command); //调用系统函数 int main(){ for(int i=0; i<10; i++){ if(i%3!=0){ printf(" "); else{ printf("\n\n"); setColor(black,red); printf(" 病毒入侵! ( Attacked ) "); Sleep(100); setColor(black,green); printf(" 已查杀病毒( Defend ) "); Sleep(200); printf("\n\n\n病毒已清除完毕!\n\n\n");
九、调用system("color 07")封装起来的函数每次都是全局变颜色,对于只想改变字体颜色,并且每次改变都不影响到上一次的颜色的话,可以参考下面的代码,运行结果跟上面的第九条稍微不一样,有兴趣的可以研究一下:
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
void color(const unsigned short textColor)
	if(textColor>=0 && textColor<=15)
    	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), textColor);
    	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
int main(){
	for(int i=0; i<10; i++){
		if(i%3!=0){
			printf("		");
		else{
			printf("\n\n");
		color(4);
		printf("	病毒入侵! ( Attacked )	");
		Sleep(100);
		color(2);
		printf("	已查杀病毒( Defend )	");
		Sleep(200);
	color(2);
	printf("\n\n\n病毒已清除完毕!\n\n\n");
	color(0);

上面第九条的color函数是我很久之前看到的一个博主写的并且解释得很详细,突然找不回来那篇文章的地址了,我不是很精通C语言,也解释不清楚其中的GetStdHandle(STD_OUTPUT_HANDLE)作为SetConsoleTextAttribute函数的第一个变量的意思了,有兴趣的可以去详细地查一下。 如果学C语言久了,难免会对弹出的黑窗口感到厌烦,那这时候如果能改一下黑窗口的背景颜色和字体颜色,也许会给自己一个好一点的心情。废话不多说,现在开始教你怎么简单地改变窗口的字体颜色和背景颜色。 system("CLS")可以实现清屏操作; 而调用color函数可以改变控制台的前景色和背景。例如,用 system("color FA"); 其中color后面的F是背景色代号,A是前景色代号,也就是文字的颜色颜色属性由两个十六
//行表头和列表头文字颜色 dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.DarkSlateGray; dataGridView1.RowHeadersDefaultCellStyle.BackColor = Color.DarkSlateGray; //行表头和列表头文字颜色 dataGridView1.ColumnHeadersDefaultCellStyle.ForeColor = Color.Cyan; dataGri
要实现背景和输出颜色改变我们需要用到system函数(该函数包含在头文件stdlib.h)中。具体用法如下: 例如我们要输出一个背景为红色字体为蓝色的Hello World #include<stdio.h> #include<stdlib.h> int main() system("color c1");//其中c代表背景颜色为红色,1代表字体颜色为蓝...
#include <stdio.h> #include <stdlib.h> //为了用system函数, #include <windows.h> //为了用Sleep函数,也可以用system函数,例如system("cls")清屏或者system("color f5")等; int main() { system("color ...
要控制C语言字体颜色,可以使用控制台窗口颜色设置,或者使用 ANSI 转义码。下面是使用 ANSI 转义码的示例: 在 C 语言中,可以使用 printf 函数来输出文本。要在输出中使用颜色,可以在输出的字符串中插入 ANSI 转义码,如下所示: printf("\033[31mThis text will be red\033[0m\n"); 其中,\033[31m 表示将颜色设置为红色,\033[0m 表示将颜色重置为默认颜色。在 ANSI 转义码中,\033 是 ESC 字符的 ASCII 码,它表示转义序列的开始。要输出其他颜色,只需更改数字即可。例如,\033[32m 表示绿色,\033[33m 表示黄色,\033[34m 表示蓝色,以此类推。 注意,使用 ANSI 转义码输出颜色可能会在某些操作系统或终端中不起作用。