核心代码
#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 testn" ); 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("nn"); //MoveCursorTo( 1, 9 ); //ColorPrintf(0x0083,"This is a testn"); return 0; }
终端/控制台设置颜色字体、光标定位和清屏
printf(“