1.特殊な文字
| 文字列 | 説明 | 備考 |
|---|---|---|
| ¥a | アラート | |
| ¥b | バックスペース | |
| ¥n | 改行 | |
| ¥r | キャリッジリターン | OSに依存 |
| ¥f | 改ページ | プリンタ用 |
| ¥t | 水平タブ | |
| ¥v | 垂直タブ | プリンタ用 |
| ¥¥ | 半角文字 ¥(円マーク) | |
| ¥? | 半角文字 ?(クエスチョンマーク) | |
| ¥' | 半角文字 ' (シングルクォーテーション) | |
| ¥" | 半角文字 " (ダブルクォーテーション) | |
| ¥0 | NULL | |
| ¥N | 8進定数(Nは3桁までの8進数) | 例)007 |
| ¥xN | 16進定数(Nは2桁までの16進数) | 例)FF |
2.画面制御
| 文字列 | 説明 | 備考 |
|---|---|---|
| ESC[0J | カーソル位置から画面右下まで消去 | |
| ESC[1J | 画面左上からカーソル位置まで消去 | |
| ESC[2J | 画面クリア | |
| ESC[0K | カーソル位置から右側消去 | 同一行 |
| ESC[1K | カーソル位置から左側消去 | 同一行 |
| ESC[2K | カーソルのある1行の消去 | |
| ESC[nA | カーソルをn行上へ移動 | |
| ESC[nB | カーソルをn行下へ移動 | |
| ESC[nC | カーソルをn桁右へ移動 | 右端で停止 |
| ESC[nD | カーソルをn桁左へ移動 | 左端で停止 |
| ESC[r;cH | カーソルをr行、n桁目へ移動 | もしくはESC[r;nf |
3. 文字制御
| 文字列 | 説明 | 備考 | |
|---|---|---|---|
| 文字修飾 | ESC[1m | ハイライト(太字) | |
| ESC[4m | 下線 | ||
| ESC[5m | ブリンク(点滅) | ||
| ESC[7m | リバース(反転) | ||
| 文字色 | ESC[30m | 黒 | |
| ESC[31m | 赤 | ||
| ESC[32m | 緑 | ||
| ESC[33m | 黄 | ||
| ESC[34m | 青 | ||
| ESC[35m | マゼンタ | ||
| ESC[36m | シアン | ||
| ESC[37m | 白 | ||
| ESC[39m | 標準色 | ||
| 背景色 | ESC[40m | 黒 | |
| ESC[41m | 赤 | ||
| ESC[42m | 緑 | ||
| ESC[43m | 黄 | ||
| ESC[44m | 青 | ||
| ESC[45m | マゼンタ | ||
| ESC[46m | シアン | ||
| ESC[47m | 白 | ||
| ESC[49m | 標準色 |
4. サンプル・プログラム
コマンドプロンプトにおける準備
Windows OS上のコマンドプロンプト画面においてエスケープシーケンスを有効にするためには、ANSI.SYSを組み込む必要があります。そのためには、ファイルconfig.sysに次の一行を追加します。また、コマンドプロンプトにはCOMMAND.EXEを使います。devicehigh=%SystemRoot%¥system32¥ANSI.SYS
#include <stdio.h>
int main(void)
{
printf("¥033[2J"); //画面クリア
printf("¥033[5;12H"); //5行目12列目へカーソル移動
printf("¥033[35H"); //文字をマゼンタに
printf("Good Luck!¥n");
printt("¥033[39m"); //デフォル色に戻す
return 0;
}
関数マクロを利用した例
#include <stdio.h>
#define esc_clear() printf("¥033[%2J") //画面クリア
#define esc_pos(x,y) printf("¥033[%02d;%02dH", y, x) //カーソル移動
#define esc_bs() printf("¥033[1K") //バックスペース
#define esc_color(c) printf("¥033[3%dm",c) //文字色
int main(void)
{
esc_clear(); //画面クリア
esc_pos(12,5); //5列目、12行目
esc_color(5); //文字をマゼンタに
printf("Good Luck!¥n");
esc_color(9); //デフォル色に戻す
return 0;
}