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; }