ANSI標準エスケープシーケンス

掲示板の方にはエスケープシーケンスが使えない!等々の質問がいろいろ出ていましたが、今回の例題では、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:エスケープシーケンスを含むコマンドを実行。

MS-DOS5.0のcommand.com があれば、step2,3 の代わりにそれを実行してもできるようです。

ANSI標準エスケープシーケンスの例題(list_10.c)
#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!

↓

この後、画面全体がクリアされます。
   
inserted by FC2 system