核心代碼
#include "stdafx.h" #include <stdio.h>#include <windows.h> /*#define FOREGROUND_BLUE 0x0001 // text color contains blue.#define FOREGROUND_GREEN 0x0002 // text color contains green.#define FOREGROUND_RED 0x0004 // text color contains red.#define FOREGROUND_INTENSITY 0x0008 // text color is intensified. #define BACKGROUND_BLUE 0x0010 // background color contains blue.#define BACKGROUND_GREEN 0x0020 // background color contains green.#define BACKGROUND_RED 0x0040 // background color contains red.#define BACKGROUND_INTENSITY 0x0080 // background color is intensified.*///更改當前輸出的顏色(前景色/背景色)void ColorPrintf(WORD cl,char* str){ static HANDLE h = GetStdHandle ( STD_OUTPUT_HANDLE ); //WORD wOldColorAttrs; //CONSOLE_SCREEN_BUFFER_INFO csbiInfo; //First save the current color information //GetConsoleScreenBufferInfo(h, &csbiInfo); //wOldColorAttrs = csbiInfo.wAttributes; //Set the new color information SetConsoleTextAttribute ( h, cl ); printf ( str); //Restore the original colors //SetConsoleTextAttribute ( h, wOldColorAttrs); SetConsoleTextAttribute(h, FOREGROUND_INTENSITY | FOREGROUND_INTENSITY);}//移動輸入光標位置void MoveCursorTo(int x,int y){ static HANDLE m=GetStdHandle(STD_OUTPUT_HANDLE); COORD cp={x,y}; SetConsoleCursorPosition(m,cp);} int main ( void ){ char st[10]; ColorPrintf (FOREGROUND_BLUE | FOREGROUND_INTENSITY, "This is a color test/n" ); for (int j=0;j<255;j+=16){ for (int i=0;i<16;i++) { sprintf(st,"%02x ",j+i); ColorPrintf(j+i,st); } printf("/n");} //printf("/n/n"); //MoveCursorTo( 1, 9 ); //ColorPrintf(0x0083,"This is a test/n"); return 0;}終端/控制臺設置顏色字體、光標定位和清屏
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 顯示光標
這樣, 在某些時候就可以實現動態的輸出.
新聞熱點
疑難解答
圖片精選