c語(yǔ)言顏色代碼詳解
c語(yǔ)言顏色代碼
初學(xué)c的小伙伴可能已經(jīng)對(duì)那個(gè)黑底白字的框有些厭倦了,不妨加點(diǎn)顏色,增加加可讀性。

/*
顏色函數(shù)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),前景色 | 背景色 | 前景加強(qiáng) | 背景加強(qiáng));
前景色:數(shù)字0-15 或 FOREGROUND_XXX 表示 (其中XXX可用BLUE、RED、GREEN表示)
前景加強(qiáng):數(shù)字8 或 FOREGROUND_INTENSITY 表示
背景色:數(shù)字16 32 64 或 BACKGROUND_XXX 三種顏色表示
背景加強(qiáng): 數(shù)字128 或 BACKGROUND_INTENSITY 表示
主要應(yīng)用:改變指定區(qū)域字體與背景的顏色
前景顏色對(duì)應(yīng)值:
0=黑色 8=灰色
1=藍(lán)色 9=淡藍(lán)色 十六進(jìn)制
2=綠色 10=淡綠色 0xa
3=湖藍(lán)色 11=淡淺綠色 0xb
4=紅色 12=淡紅色 0xc
5=紫色 13=淡紫色 0xd
6=黃色 14=淡黃色 0xe
7=白色 15=亮白色 0xf
也可以把這些值設(shè)置成常量。
*/
#include <stdio.h>
#include <windows.h>
void color(short x) //自定義函根據(jù)參數(shù)改變顏色
{
if(x>=0 && x<=15)//參數(shù)在0-15的范圍顏色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x); //只有一個(gè)參數(shù),改變字體顏色
else//默認(rèn)的顏色白色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
}
int main()
{
printf("此處為沒(méi)調(diào)用顏色函數(shù)之前默認(rèn)的顏色\n");
//調(diào)用自定義color(x)函數(shù) 改變的顏色
color(0); printf("黑色\n");
color(1); printf("藍(lán)色\n");
color(2); printf("綠色\n");
color(3); printf("湖藍(lán)色\n");
color(4); printf("紅色\n");
color(5); printf("紫色\n");
color(6); printf("黃色\n");
color(7); printf("白色\n");
color(8); printf("灰色\n");
color(9); printf("淡藍(lán)色\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); //因?yàn)檫@里大于15,恢復(fù)默認(rèn)的顏色
printf("回到原來(lái)顏色\n");
//直接使用顏色函數(shù)
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_INTENSITY | BACKGROUND_GREEN | BACKGROUND_INTENSITY);
printf("紅色字體 前景加強(qiáng) 綠色背景 背景加強(qiáng)\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15 | 8 | 128 | 64);
printf("亮白色字體 前景加強(qiáng) 紅色背景 背景加強(qiáng)\n");
//聲明句柄再調(diào)用函數(shù)
HANDLE JB = GetStdHandle(STD_OUTPUT_HANDLE);//創(chuàng)建并實(shí)例化句柄
SetConsoleTextAttribute(JB, 2 | 8);
printf("顏色及對(duì)應(yīng)數(shù)字表:\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;
//類似的函數(shù)還有system("color XX");(X是十六進(jìn)制0~F之間的數(shù),不過(guò)這種函數(shù)改變的是整個(gè)畫(huà)面,而不能讓多處局部變色;
}
以上實(shí)例很簡(jiǎn)單,大家可以在本地測(cè)試下,感謝大家的學(xué)習(xí)和對(duì)腳本之家的支持。
相關(guān)文章
使用c++調(diào)用windows打印api進(jìn)行打印的示例代碼
這篇文章主要介紹了使用c++調(diào)用windows打印api進(jìn)行打印的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
C語(yǔ)言用棧模擬實(shí)現(xiàn)隊(duì)列問(wèn)題詳解
本片文章帶你分析如何用兩個(gè)棧,并且只使用棧的基本功能來(lái)模擬實(shí)現(xiàn)隊(duì)列,其中同樣只實(shí)現(xiàn)隊(duì)列的基本功能,感興趣的朋友來(lái)看看吧2022-04-04
C++中vector容器的常用操作方法實(shí)例總結(jié)
vector容器一般被用作創(chuàng)建動(dòng)態(tài)數(shù)組,動(dòng)態(tài)數(shù)組就像Python中的list結(jié)構(gòu)一樣,可以比普通數(shù)組擁有更豐富操作方法,下面就為大家整理了一些最常用的操作:2016-05-05
PTA刷題C語(yǔ)言編程順序顛倒輸出實(shí)現(xiàn)
本篇文章是在刷PTA題目是遇到的一道題,給定一句話,要求將句中所有單詞順序顛倒輸出,本文來(lái)帶你解答,有需要的朋友可以借鑒參考下2021-09-09
C++?Cartographer的入口node main詳細(xì)講解
這篇文章主要介紹了C++Node類Cartographer的入口node main,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-03-03
c++ 隨機(jī)數(shù)問(wèn)題的相關(guān)研究
這篇文章主要介紹了c++ 隨機(jī)數(shù)問(wèn)題的相關(guān)研究,幫助大家更好的理解和學(xué)習(xí)使用c++,感興趣的朋友可以了解下2021-03-03
詳解C++虛函數(shù)中多態(tài)性的實(shí)現(xiàn)原理
C++是一種面向?qū)ο蟮木幊陶Z(yǔ)言,在C++中,虛函數(shù)是實(shí)現(xiàn)多態(tài)性的關(guān)鍵。本文就來(lái)探討一下C++虛函數(shù)中多態(tài)性的實(shí)現(xiàn)原理及其在面向?qū)ο缶幊讨械膽?yīng)用吧2023-05-05

