掲示板の方にはエスケープシーケンスが使えない!等々の質問がいろいろ出ていましたが、今回の例題では、cygwin/gcc 及び UNIX/gcc でコンパイル・実行しましたので、無事エスケープシーケンスが認識されています。 VC++やフリーのコンパイラであるLCC、BCC等ではOSの違いにより表示されない場合があります。 一応の解決作としては、
PC/AT 互換機では config.sys(NT系ではconfig.NT) に ansi.sys を device として登録すればエスケープシーケンスが使えるよう ですが、通常のままでは使用できません。 例: device=%SystemRoot%\system32\ANSI.SYS |
step1:config.ntにansi.sysを追加。 step2:config.ntの最後に"dosonly"と追加。 step3:command.comを起動。 ※NTのコマンドプロンプトはcmd.exeです。 command.comはsystem32に含まれています。 step4:エスケープシーケンスを含むコマンドを実行。 |
#include <stdio.h> #define CLS printf("\033[;H\033[2J") int main() { printf("HIT KRY!"); getchar(); CLS; getchar(); return 0; } |
Gami[749]% list_10.exe HIT KRY! ↓ この後、画面全体がクリアされます。 |