C言語は、必ずしも「黒地に白」であるとは限りません。色を付けることもできます。Windows.h
ヘッダーファイルの下にあるSetConsoleTextAttribute
関数を呼び出して、テキストと背景色を変更できます。
呼び出しフォームは次のとおりです。
SetConsoleTextAttribute( HANDLE hConsoleOutput, WORD wAttributes );
hConsoleOutput
コンソールバッファのハンドルを示しますGetStdHandle(STD_OUTPUT_HANDLE)
。これは、;から取得できwAttributes
ます。テキストの色と背景色を示します。
ここではHANDLEの意味を追求しませんが、後で Windows開発 で詳しく説明し ます。
WORD
内windows.h
と同等の定義、unsigned short
下位4ビットの使用は、テキスト(前景)色を表し、上位4ビットは、その値があるように、テキストの背景色を表しますxx
。xは16進数です。つまり、0~F
両方を使用でき、自由に組み合わせることができます。
0〜Fで表される色は次のとおりです。
0 =黒8 =グレー1 =ライトブルー9 =ブルー
2 =ライトグリーンA =グリーン3 =レイクブルーB =ライトグリーン
C =レッド4 =ライトレッド5 =パープルD
=ライトパープル 6 =イエローE =ライトイエロー7 =白F =明るい白
たとえば、背景を薄緑に設定し、テキストを赤に設定します。
#include <stdio.h>
#include <windows.h>
int main(){
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole, 0x2C );
puts("C语言中文网");
return 0;
}
実行結果:
テキストの色のみを設定し、背景を黒のままにしたい場合は、次のように16進数のみを指定することもできます。
SetConsoleTextAttribute(hConsole、0xC); //テキストの色を赤に設定 SetConsoleTextAttribute(hConsole、0xF); //テキストの色を白に設定
別の例を見てみましょう:
#include <stdio.h>
#include <windows.h>
int main(){
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole, 0xC );
puts("红色文字");
SetConsoleTextAttribute(hConsole, 0xF );
puts("白色文字");
SetConsoleTextAttribute(hConsole, 2 );
puts("淡绿色文字");
return 0;
}
演算結果: