Windowsでコンソールの文字色を変える方法

2016年10月2日 0 投稿者: khws4v1

大学のシステム開発の演習をどう進めていくか決めたんですけども

  • OSはWindows
    理由: Windowsしかないから
  • プログラミング言語はC
    理由: 他の学生がCしか知らないから
  • インターフェースはCUI
    理由: 時間ないから

……かなり消極的な方法で決定してしまったので、大人しくC言語の学習をすることに。

過去の完成したプログラムを見ると、単純にprintf()で文字を出力しているだけという大変お粗末なものなので、せめて色くらいつかないものかと。
そこで、Windows上で文字色を変える方法を調べておくことにしました。

文字色を変える

これで文字の色が赤になります。
FOREGROUND_REDを変えると赤以外の色も使えます。

FOREGROUND_BLUE 0x0001
FOREGROUND_GREEN 0x0002
シアン FOREGROUND_BLUE | FOREGROUND_GREEN 0x0003
FOREGROUND_RED 0x0004
マゼンダ FOREGROUND_BLUE | FOREGROUND_RED 0x0005
黄色 FOREGROUND_GREEN | FOREGROUND_RED 0x0006
FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_GREEN 0x0007
強調 FOREGROUND_INTENSITY 0x0008

FOREGROUND_INTENSITYはオンにすると文字色が強調されるフラグ。
FOREGROUND_BLUE | FOREGROUND_INTENSITYにするとより鮮やかな青になります。

背景色を変える

これで背景の色が赤になります。
BACKGROUND_REDを変えると赤以外の色も使えます。

BACKGROUND_BLUE 0x0010
BACKGROUND_GREEN 0x0020
シアン BACKGROUND_BLUE | BACKGROUND_GREEN 0x0030
BACKGROUND_RED 0x0040
マゼンダ BACKGROUND_BLUE | BACKGROUND_RED 0x0050
黄色 BACKGROUND_GREEN | BACKGROUND_RED 0x0060
BACKGROUND_BLUE | BACKGROUND_RED | BACKGROUND_GREEN 0x0070
強調 BACKGROUND_INTENSITY 0x0080

BACKGROUND_INTENSITYはオンにすると文字色が強調されるフラグ。
BACKGROUND_BLUE | BACKGROUND_INTENSITYにするとより鮮やかな青になります。