打了一學(xué)期碼少漆,黑底白字的“黑框框”也許厭倦了尸疆,現(xiàn)在來改變一下輸出椿猎,讓文字鮮活起來。
一:
? ? ?最簡(jiǎn)單的辦法寿弱,點(diǎn)擊“開始”--“運(yùn)行”--輸入cmd犯眠,回車,在cmd窗口的標(biāo)題右擊症革,選擇”屬性“筐咧,
可以見到里面有字體、顏色等的設(shè)置噪矛。挑自己喜歡的選擇即可量蕊。
回到自己寫的代碼,運(yùn)行之后就會(huì)看到顏色得到改變艇挨。
二 :
顯然上面的設(shè)置只能在本地生效残炮,如果你用很搭配的顏色謝了一個(gè)很不錯(cuò)的代碼,想share給你的朋友缩滨,只是按照上面是不行的啦吉殃。
下面?zhèn)魇诘诙小?/p>
我們都用過system("pause");這里其實(shí)是調(diào)用了stdlib.h的庫(kù)函數(shù),可以傳進(jìn)DOS命令行參數(shù)執(zhí)行楷怒。
沒錯(cuò)蛋勺,就是那個(gè)DOS系統(tǒng)。
通過system("title XXX");//改變exe的標(biāo)題鸠删,支持空格抱完、漢字。
通過system("color XX");//改變前景色刃泡,背景色巧娱。
通過system("pause>NULL");//去掉”按任意鍵繼續(xù)“這幾個(gè)字
這樣碉怔,你就可以擁有15*15種顏色的選擇了。//別告訴我你打算color 00
三 :
system("color ")只能整個(gè)界面一種顏色禁添,會(huì)不會(huì)單調(diào)了些啊撮胧、、老翘、
沒事芹啥。
我們現(xiàn)在不用system了,換換換铺峭。
這次要包含的庫(kù)是<windows.h>
要用到的語(yǔ)句只有兩句墓怀,一句聲明并賦值,一句實(shí)行卫键。
聲明:HANDLE ?hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
類型是HANDLE 傀履,俗稱“句柄”,GetStdHandle(STD_OUTPUT_HANDLE)是定義在庫(kù)里面的一個(gè)函數(shù)莉炉,這個(gè)可以不用深入研究钓账,往這個(gè)函數(shù)傳進(jìn)的參數(shù)是標(biāo)準(zhǔn)輸出流的句柄,//看它的樣子好像不用我多說絮宁、官扣、、由于是庫(kù)函數(shù)羞福,內(nèi)部細(xì)節(jié)不必太關(guān)心惕蹄,有興趣的同學(xué)可以自行百度一下。
就像new一個(gè)對(duì)象治专,或者打開一個(gè)文件卖陵,都要先判斷是否成功,這里也一樣张峰。
if (hConsole != INVALID_HANDLE_VALUE )//繼續(xù)執(zhí)行下去
實(shí)行語(yǔ)句 :SetConsoleTextAttribute(hConsole, i);這里i可以是[0,255]中任何一個(gè)值,不同的值對(duì)應(yīng)的顏色也不同泪蔫,大致規(guī)律是用i除以16,余數(shù)和商分別是前景色和背景色喘批,至于具體是哪種顏色撩荣,這就和color XX里面的顏色對(duì)應(yīng)(別忘了轉(zhuǎn)進(jìn)制)。
另外饶深,這個(gè)函數(shù)和控制小數(shù)點(diǎn)的一樣餐曹,有效范圍是從SetConsoleTextAttribute開始的所有輸出,到下一次SetConsoleTextAttribute之前敌厘。
示例代碼:
HANDLE ?hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
if (hConsole != INVALID_HANDLE_VALUE )
? ? ?for ?(int i=255;i>=0;i--)
? ? ? {
? ? ? ? ?SetConsoleTextAttribute(hConsole, i);
? ? ? ? ?cout<<"color";
? ?}
四:
如果你覺得還不夠過癮的話台猴、、、
看見RGL沒饱狂,256*256*256自己倒騰去@_@