有没有办法做到这一点?我目前正在使用和功能系统(颜色);但这会改变整个程序的字体和背景颜色,我怎样才能只更改特定部分?
问问题
1212 次
2 回答
1
您可以使用VT100 转义码为文本输出添加颜色。然后你不需要任何外部库或程序。
例子:
printf("This text is \x1b[31mred \x1b[32mgreen \x1b[0mnormal.\n");
编辑:转义码在 Windows 命令提示符下不起作用,您必须使用诸如SetConsoleTextAttribute
.
这是一个显示如何使用它的示例:
#include <windows.h>
#include <stdio.h>
int main()
{
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO ConsoleInfo;
GetConsoleScreenBufferInfo(hConsole, &ConsoleInfo);
int originalAttrs = ConsoleInfo.wAttributes;
printf("This text is ");
SetConsoleTextAttribute(hConsole, FOREGROUND_RED);
printf("red ");
SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN);
printf("green ");
SetConsoleTextAttribute(hConsole, originalAttrs);
printf("normal\n");
return 0;
}
于 2012-07-20T07:24:30.660 回答
0
当然有。libcaca是一个广泛支持的基于文本的图形库,也许你会发现它很有用。
于 2012-07-20T07:09:11.720 回答