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