1

有没有办法做到这一点?我目前正在使用和功能系统(颜色);但这会改变整个程序的字体和背景颜色,我怎样才能只更改特定部分?

4

2 回答 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 回答