• 締切済み

コンソール画面のクリアの方法

いま、C言語でごく単純なゲームをテーマにGUIで勉強しています。 それで、while分などループ文で毎度「○○入力してください」とか「○○でした」などと入力する度に表示されると非常にうざいです。1ターンごとに画面をクリアするいい方法ないでしょうか?おしえてください。

みんなの回答

回答No.3

 OS が何かも「コンソール」ソフトが何かも不明なので、勝手に Windows だと仮定して回答します。 No.1 の回答にある「ESC[2J を printf する」方法は、ansi.sys をロードした「MS-DOS プロンプト」でないとうまく行きません。手元に Windows XP しかなくて、Windows 9x 系がどうなっているか確認できないのですが、Windows XP では、次のようにします。     C:\WINDOWS\SYSTEM32\CONFIG.NT の最後に次の二行を加える。       device=%SystemRoot%\system32\ansi.sys       dosonly     コマンドプロンプト(cmd.exe)ではなく、MS-DOS プロンプト(command.com) を起     動。このコンソールは、ESC[2J でクリアできます。  ただし、このコンソールでは MS-DOS 用に作成されたものしか実行できません。今、勉強のために作成しているソフトは実行できないかも知れません。  コマンドプロンプトでも有効な方法は二つあって、簡単なほうは、     #include <stdlib.h>     ....     ....     system("cls");     .... という風にします。もうひとつの方法はコードが長いので、以下の URL を参照してください。  もし、Linux などの UNIX 系 OS の話だったら、方法が違うので、回答への補足でお知らせください。

参考URL:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/clearing_the_screen.asp
nVIDIA
質問者

お礼

自分でも探していたら方法がみつかりました。 system("cls")すればOKなんです。 ただしこれはWindowsでのはなし。 UNIXなら別のコマンドを入れなくてはならないとわかりました。 ありがとうございます。

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.2

お使いの「コンソール」が何かによってそのコンソールを操作する方法も違ってきます。 お使いの「コンソール」は何ですか。

  • zzen
  • ベストアンサー率23% (9/38)
回答No.1

コンソールのクリアであれば、エスケープシーケンスでクリアを表示してやればokです。 以下をprintfで表示してください。ESCはx1bです。 ESC[2J

関連するQ&A