Windows中terminal应用程序中的C颜色文本

我知道“textcolor();” 是为C + +,我已经看到了unix的方法…但也有窗户的方式吗?

#include <stdio.h> int main() { printf("\ntest - C programming text color!"); printf("\n--------------------------------"); printf("\n\n\t\t-BREAK-\n\n"); textcolor(15); printf("WHITE\n"); textcolor(0); printf("BLACK\n"); textcolor(4); printf("RED\n"); textcolor(1); printf("BLUE\n"); textcolor(2); printf("GREEN\n"); textcolor(5); printf("MAGENTA\n"); textcolor(14); printf("YELLOW\n"); textcolor(3); printf("CYAN\n"); textcolor(7); printf("LIGHT GRAY\n"); } 

我在网上找不到任何东西…让我们希望从堆栈溢出的好人可以帮助:D

请C,而不是C ++

Solutions Collecting From Web of "Windows中terminal应用程序中的C颜色文本"

既然你想要一个C和Windows特定的解决方案,我建议在Win32 API中使用SetConsoleTextAttribute()函数。 您需要获取控制台的句柄,然后将其传递给相应的属性。

举一个简单的例子:

 /* Change console text color, then restore it back to normal. */ #include <stdio.h> #include <windows.h> int main() { HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_SCREEN_BUFFER_INFO consoleInfo; WORD saved_attributes; /* Save current attributes */ GetConsoleScreenBufferInfo(hConsole, &consoleInfo); saved_attributes = consoleInfo.wAttributes; SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE); printf("This is some nice COLORFUL text, isn't it?"); /* Restore original attributes */ SetConsoleTextAttribute(hConsole, saved_attributes); printf("Back to normal"); return 0; } 

有关可用属性的更多信息,请看这里 。

希望这可以帮助! 🙂

在这里你去: http : //msdn.microsoft.com/en-us/library/windows/desktop/ms686047(v=vs.85).aspx

你可以在这里看到它的一个用法: 这个表达意味着什么? (C语言中的SetConsoleTextAttribute函数)

第二个与“包括windows.h”的作品。 另一个可能是开始