जवाबों:
सभी आधुनिक टर्मिनल एमुलेटर रंग और अन्य चीजों को दिखाने के लिए एएनएसआई एस्केप कोड का उपयोग करते हैं।
पुस्तकालयों के साथ परेशान मत करो, कोड वास्तव में सरल है।
अधिक जानकारी यहाँ है ।
C में उदाहरण:
#include <stdio.h>
#define ANSI_COLOR_RED "\x1b[31m"
#define ANSI_COLOR_GREEN "\x1b[32m"
#define ANSI_COLOR_YELLOW "\x1b[33m"
#define ANSI_COLOR_BLUE "\x1b[34m"
#define ANSI_COLOR_MAGENTA "\x1b[35m"
#define ANSI_COLOR_CYAN "\x1b[36m"
#define ANSI_COLOR_RESET "\x1b[0m"
int main (int argc, char const *argv[]) {
printf(ANSI_COLOR_RED "This text is RED!" ANSI_COLOR_RESET "\n");
printf(ANSI_COLOR_GREEN "This text is GREEN!" ANSI_COLOR_RESET "\n");
printf(ANSI_COLOR_YELLOW "This text is YELLOW!" ANSI_COLOR_RESET "\n");
printf(ANSI_COLOR_BLUE "This text is BLUE!" ANSI_COLOR_RESET "\n");
printf(ANSI_COLOR_MAGENTA "This text is MAGENTA!" ANSI_COLOR_RESET "\n");
printf(ANSI_COLOR_CYAN "This text is CYAN!" ANSI_COLOR_RESET "\n");
return 0;
}
रंग क्रम से निपटने से गड़बड़ हो सकती है और विभिन्न सिस्टम अलग-अलग रंग अनुक्रम संकेतक का उपयोग कर सकते हैं।
मैं आपको ncurses का उपयोग करने का प्रयास करने का सुझाव दूंगा । रंग के अलावा, ncurses कंसोल यूआई के साथ कई अन्य स्वच्छ चीजें कर सकते हैं।
आप रंगीन टर्मिनल आउटपुट प्राप्त करने के लिए विशेष रंग नियंत्रण कोड का उत्पादन कर सकते हैं, यहां रंगों को प्रिंट करने का एक अच्छा संसाधन है ।
उदाहरण के लिए:
printf("\033[22;34mHello, world!\033[0m"); // shows a blue hello world
संपादित करें: मेरे मूल एक ने शीघ्र रंग कोड का उपयोग किया, जो काम नहीं करता है :( यह एक करता है (मैंने इसे परीक्षण किया)।
edition.c: In function ‘int main(int, const char**)’: edition.c:4: error: unknown escape sequence '\]' edition.c:4: error: unknown escape sequence '\]' edition.c edition.c~
संकलन त्रुटियों का एक गुच्छा से ज्यादा कुछ नहीं :(
22
द्वारा 1
में यह देखने के लिए बोल्ड ।
आप इसे अधिक उपयोगी बनाने के लिए हर कार्यक्षमता में एक रंग असाइन कर सकते हैं।
#define Color_Red "\33[0:31m\\]" // Color Start
#define Color_end "\33[0m\\]" // To flush out prev settings
#define LOG_RED(X) printf("%s %s %s",Color_Red,X,Color_end)
foo()
{
LOG_RED("This is in Red Color");
}
बुद्धिमान की तरह आप अलग-अलग रंग कोड का चयन कर सकते हैं और इसे अधिक सामान्य बना सकते हैं।
क्योंकि आप स्ट्रिंग फ़ॉर्मेटिंग वाले चरित्र को प्रिंट नहीं कर सकते हैं। आप कुछ इस तरह से एक प्रारूप जोड़ने के बारे में भी सोच सकते हैं
#define PRINTC(c,f,s) printf ("\033[%dm" f "\033[0m", 30 + c, s)
f
में प्रारूप है printf
PRINTC (4, "%s\n", "bar")
छप जाएगा blue bar
PRINTC (1, "%d", 'a')
छप जाएगा red 97
#include <stdio.h>
#define BLUE(string) "\x1b[34m" string "\x1b[0m"
#define RED(string) "\x1b[31m" string "\x1b[0m"
int main(void)
{
printf("this is " RED("red") "!\n");
// a somewhat more complex ...
printf("this is " BLUE("%s") "!\n","blue");
return 0;
}
रीडिंग विकिपीडिया :