1

とにかくこれを行うことはありますか?現在使用している関数 system(Color ); しかし、それはプログラム全体のフォントと背景色を変更します。特定の部分だけを変更するにはどうすればよいですか?

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 に答える