喜歡編寫游戲的朋友們,你們有福了,這個資料足以讓你玩轉WINDOWS和Linux下的光標定位以及顏色,enjoy it。
一、WINDOWS:
1.光標定位函數:
代碼如下:
#include <windows.h>
#include <conio.h>
/****** 光標移到指定位置 ********************************/
void gotoxy(HANDLE hOut, int x, int y)
{
COORD pos;
pos.X = x; //橫坐標
pos.Y = y; //縱坐標
SetConsoleCursorPosition(hOut, pos);
}
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);//定義顯示器句柄變量
gotoxy(hOut,20,30); //光標定位在坐標(20,30)
2.顏色控制:
2.1函數實現
代碼如下:
/******設置文本為綠色 ********************************************/
void Set_TextColor_Green (void)
{
HANDLE Handle = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(Handle, FOREGROUND_INTENSITY | FOREGROUND_GREEN);
}
2.2 system
system("color 0D");//設置文本為粉紅色
注:1.0-15為16種顏色。
2.0D中0為背景顏色,D為字體顏色。
3.清屏
system("cls");
二、Linux:
在linux/unix的字符界面下,可以利用一些控制符來定位顯示位置、控制顏色、清屏等。
printf("\033[47;31mhello world\033[5m");
47是字背景顏色, 31是字體的顏色, hello world是字符串. 後面的\033[5m是控制碼.
顏色代碼:
QUOTE:
字背景顏色范圍: 40--49 字顏色: 30--39
40:黑 30:黑
41:紅 31:紅
42:綠 32:綠
43:黃 33:黃
44:藍 34:藍
45:紫 35:紫
46:深綠 36:深綠
47:白色 37:白色
ANSI控制碼:
QUOTE:
\033[0m 關閉所有屬性
\033[1m 設置高亮度
\03[4m 下劃線
\033[5m 閃爍
\033[7m 反顯
\033[8m 消隱
\033[30m -- \033[37m 設置前景色
\033[40m -- \033[47m 設置背景色
\033[nA 光標上移n行
\03[nB 光標下移n行
\033[nC 光標右移n行
\033[nD 光標左移n行
\033[y;xH設置光標位置
\033[2J 清屏
\033[K 清除從光標到行尾的內容
\033[s 保存光標位置
\033[u 恢復光標位置
\033[?25l 隱藏光標
\33[?25h 顯示光標