有時候寫 code 就是會手癢想美化一下,就會開始上網找要怎麼改顏色、版面調整。雖然說現在搜尋引擎已經很方便了,但還是想記錄一下之前做專題時用到的幾個好用的函式,以後要用的時候就可以輕鬆地達成目的。
本篇文章包含下列三個函式的實作與解說:
setColor()
:指定局部色彩system('color 0a')
:指定全畫面色彩gotoxy()
:更改游標位置
如果以上三者有你需要的,就請繼續看下去吧!
用 SetColor();
更改顏色
步驟很簡單~只要將下面這堆程式碼加到你的 .cpp 裡面
再加上其他小細節(宣告還是之類的),就會有個函式讓你可以使用,這邊就不多說了。
#include<windows.h>
void SetColor(int color = 7)
{
HANDLE hConsole;
hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole,color);
}
需要更改顏色時只要呼叫 SetColor(<strong>數字</strong>);
就可以更改顏色了。
數字對應到的文字顏色以及背景顏色如下圖:
SetColor
舉例來說, 我今天想要出現 黑底紅字 那我只要呼叫 SetColor(12);
就可以完成願望
再舉例來說, 我今天想要 白底黑字 我只要呼叫 SetColor(240);
就可以達成效果
那今天我想要變回預設值呢?可以直接輸入 SetColor();
就會切回原本顯示的樣子了。
是不是很方便呀?以上就是 SetColor()
這個函式的的使用方式。
system(“color 0a");
學了局部改變顏色的方法,就順便學一下霸氣的、改整面顏色的方法吧!
windows 要呼叫很簡單,只要先 #include<stdlib.h>
然後在需要的時候輸入 system("color 0a");
就可以改變顏色了!簡單解釋一下,後面有兩個值,都採十六進位制。第一個值是控制文字顏色,第二個值是控制背景顏色。對應的顏色我就不講了,讓你自行摸索。
P.S : system("color 0F");
是黑底白字,system("color F0");
是白底白黑字,剩下的自行看著辦。
用 gotoxy();
更改游標位置
有時候會想要有一些排版,就會不斷的 print 空白鍵,但每次這樣寫就覺得好麻煩又好蠢。程式碼被空白字元佔滿的感覺真的不好受,就算使用迴圈印也還是沒辦法逃離看起來亂糟糟的感覺。
這個時候就會希望可以獲得「游標位置主控權」,方法其實很簡單,程式碼如下方所示:
#include<windows.h>
void gotoxy(int xpos, int ypos)
{
COORD scrn;
HANDLE hOuput = GetStdHandle(STD_OUTPUT_HANDLE);
scrn.X = xpos; scrn.Y = ypos;
SetConsoleCursorPosition(hOuput,scrn);
}
想移動游標時只要呼叫 gotoxy(x,y);
就 OK 了。
x, y 值的計算方式是以命令提示字元視窗的左上角開始算:向右向下,值漸漸增加,細節就請自己試試看吧。
後記
有了上面那幾個函式,相信就可以大大的改善使用者介面了,更不用提程式碼會變得多整潔。如果想製作命令列小遊戲,有了上面那兩個函式也會變得很容易。