Skip to content

Instantly share code, notes, and snippets.

@anta40
Created November 28, 2014 17:29
Show Gist options
  • Save anta40/0383bd93739ff229c8b6 to your computer and use it in GitHub Desktop.
Save anta40/0383bd93739ff229c8b6 to your computer and use it in GitHub Desktop.
How to set different color to each alphabet in C
#include <stdio.h>
#include <windows.h>
#define BLACK 0
#define BLUE FOREGROUND_BLUE
#define GREEN FOREGROUND_GREEN
#define CYAN FOREGROUND_GREEN | FOREGROUND_BLUE
#define RED FOREGROUND_RED
#define MAGENTA FOREGROUND_RED | FOREGROUND_BLUE
#define BROWN FOREGROUND_RED | FOREGROUND_GREEN
#define LIGHTGRAY FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE
#define DARKGRAY FOREGROUND_INTENSITY
#define LIGHTBLUE FOREGROUND_BLUE | FOREGROUND_INTENSITY
#define LIGHTGREEN FOREGROUND_GREEN | FOREGROUND_INTENSITY
#define LIGHTCYAN FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY
#define LIGHTRED FOREGROUND_RED | FOREGROUND_INTENSITY
#define LIGHTMAGENTA FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY
#define YELLOW FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY
#define WHITE FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY
int main(void){
int x;
char mystr[10] = "abcdefghij";
WORD colors[9] = {BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY, DARKGRAY};
HANDLE hin = GetStdHandle(STD_INPUT_HANDLE);
HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(hout, &csbi);
for (x = 0; x <= 9; x++){
SetConsoleTextAttribute(hout, colors[x]);
printf("%c", mystr[x]);
}
FlushConsoleInputBuffer(hin);
// reset warna command prompt
SetConsoleTextAttribute(hout, csbi.wAttributes );
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment