• ベストアンサー
  • 困ってます

system("cls")について

system("cls")を使うと画面を一旦消去出来るということで使ってみたのですが、これを使うと若干処理がストップしてしまいます。 system("cls")を使わない場合には一瞬で結果を表示してくれますが、system("cls")ではそれは出来ないのでしょうか? 分かりにくい質問かと思いますが、よろしければご回答お願いします。 コンパイラ:BorlandC++ Compiler 開発環境:CPad for Borland C++Compiler OS:Windows XP

共感・応援の気持ちを伝えよう!

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1

DOS窓の話ですね。 clsはcommand.comの内部コマンドなので呼び出しが遅いしMSDOS標準システムコールを使ってるので実行も遅いわけで。 だからPC98時代は直接VRAMを書き換えてました。 しかし現在はCPUも早いので puts("")を 24回? 呼び出せば速いのでは。 こんな質問に出会ったのは20年ぶりであります。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

アドバイスありがとうございます。 ちょっと最近コンソール上(?)で動くリバーシを作る機会がありまして、それをちょっと作ってからコンソールでもリアルタイム処理を出来る事を知り、コンソールアプリケーションの可能性に目覚めました。 私はDOSの時代を知らず、ウインドウベース(?)のプログラムが当たり前だと思っていた人間ですが、やはりコンソール上でリバーシが動いた時は感動しましたね。

その他の回答 (2)

  • 回答No.3

★アドバイス ・ちょっとAPI関数を使って作ってみました。  Windows.h をインクルードできる環境でお使い下さい。(分かりますか?) #include <Windows.h> // 画面消去の定数 #define CLS_SPACE ((WORD)(0x20)) #define CLS_COLOR ((WORD)(0x0F)) // すべての画面消去 void cls( void ) {  CONSOLE_SCREEN_BUFFER_INFO csbi = { 0 };  COORD pos = { 0 };  HANDLE hStderr;    hStderr = GetStdHandle( STD_ERROR_HANDLE );  GetConsoleScreenBufferInfo( hStderr, &csbi );  SetConsoleCursorPosition( hStderr, pos );  FillConsoleOutputCharacter( hStderr, CLS_SPACE, (csbi.dwSize.X * csbi.dwSize.Y), pos, NULL );  FillConsoleOutputAttribute( hStderr, CLS_COLOR, (csbi.dwSize.X * csbi.dwSize.Y), pos, NULL ); } どうぞ。(インデントは全角空白ですので注意)

共感・感謝の気持ちを伝えよう!

質問者からのお礼

アドバイスありがとうございます。 ちょうどWin32APIの勉強をちょろっとし始めていたので、なんとか理解して動かしてみたところ、しっかり画面の消去が出来ました。 どういった処理なのかはさっぱりですが、APIを勉強していく過程で少しずつ理解していければと思います。

  • 回答No.2
  • jacta
  • ベストアンサー率26% (845/3158)

clrscr関数を使うというのはどうでしょう?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

アドバイスありがとうございます。 Cpadだと分割コンパイルにmakefileを書かなければならず、面倒そうだったので、最近ちょっとVisualC++を使って書いていたのですが、どうもclrscr関数はVisualC++では動かない(サポートしていない?)ようですね。 ということでBCCDeveloperをダウンロードして試してみると、見事に高速で画面の消去が出来ました!

関連するQ&A

  • BorlandC++Compiler

    C++を覚えようと CPad http://www.vector.co.jp/soft/win95/prog/se141451.html BorlandC++Compiler http://www.borland.co.jp/cppbuilder/freecompiler/index.html の2つをダウンロードしたのですが、BorlandC++CompilerのBinというファイルの中のfconvert.exeを開いたのですが、ファイルネイムになんと入れればいいのか解りません。 それからこれらは2つダウンロードする必要があったのでしょうか? お願いします。

  • 【エラー】Cpadで初めてコンパイル

    Cpad for Borlandで以下のようなソースを書きコンパイルをしましたが、失敗し、行き詰っております。 当方、初プログラミングに挑戦しております。 <環境> OS:XP(HOME) コンパイラ:Borland C++ Compiler エディタ:Cpad for Borland <動作状況> ソース: #include <stdio.h> int main ( void ) { printf(mori); return 0; } エラー情報: 「コンパイルに失敗しました。 ファイル"ファイル"D:\source\test1.exe"は存在しません」 参考情報(参考にならないかもしれませんが…): ・コンパイラはDドライブにインストールしております。 ・コンパイラのパスはD:\borland\bcc55\Bin\bcc32.exeです。 以上、よろしくお願いいたします。

  • CPad for Borland C++Compilerのダウンロード

    CPad for Borland C++Compilerのダウンロードは どこですればよいでしょうか? もう、かなり前のソフトなので、 全然見つかりません。 よろしくお願いします。

  • cコンパイラーはないのですがc++コンパイラーだけでいいですか?

    C++は、Cにない、いくつかの機能を付け加えたもの という説明が あるページに ありました。  現在は、cとc++に違いがあるという認識はありますが、.cが出来ないで、.cppができるという作業環境関係になっています。  作業環境は"CPad for Borland C++Compiler" です。 このままcの学習を"CPad for Borland C++Compiler"だけで進めても問題が、あるでしょうか?

  • C言語でDOSの画面を消去する。(CLS)

    C言語でDOSの表示されている文字を全て消去するには clrscr();やsystem("cls");などの書き方があるのですが、 どうしても一瞬だけ画面がちらついてしまい、連続で 画面を消去する必要のある時などはどうしても気になって しまいます。 そこでもっと高速に画面を消去したいのですが、 それは不可能なのでしょうか・・・。

  • DOS窓が閉じてしまう。

    こんばんは。Cpad for Borland C++Compilerを使っています。 入力後コンパイルされ(正常に) そしてDOS窓が開きますがそのまま 一瞬表示され(簡単な文字列を表示させるプログラムです)そしてそのまま窓が閉じてしまいます。 これを一時停止させて表示させる手法は何かないのでしょうか? OSはWINDOWSXPSP2 です。

  • Cpad for Borland C++Compiler を使っている方に質問です。

    上にある「実行」をクリックすると、一番下に「設定(s)」が現れ、そこをクリックすると設定画面が現れます。 そこで「コンパイラのパス」と「ヘルプファイルのパス」を入力したいんですが、このパス(パスワードの略?)って、どこを参照すればわかりますか? パソコンが本当に苦手で、苦労してCpad for Borland C++Compilerをインストールしたのですが、プログラムを入力して「コンパイル&実行」ボタンを押したら「コンパイラ""が見つかりません」と出ました。多分、「コンパイラのパス」が入力できればプログラムは実行できるんじゃないかと思います。

  • 初めてのプログラミング

    学校の授業でC言語(C++ではありません)を勉強することになりました 学校ではvisual c++ 6.0を使用しています。 自宅のPCにも全く同じ物をDLしようとしましたがありませんでした。 そこでいろいろ調べてみて エディタ:CPad コンパイラ:Borland C++ Compiler をDLしてインストールしました。 エディタは問題なく使用できるのですがコンパイラをうまく使うことが出来ない為、実行も出来ません #include <stdio.h> int main(void) { 本文・・・ return(0); } って感じにエディタに記述して、拡張子を.cにして保存 その後コンパイルしようとしても出来ず・・・ もしかしてBorland C++ Compiler のコンパイラではC言語はコンパイル出来ないのでしょうか? 調べてもよくわからないので教えていただけないでしょうか? お願いします

  • コマンドプロンプトがすぐ消える

    Cpad for Borland C++Compilerという統合開発環境を使ってC/C++を書いています。 OSがvistaで32ビットのパソコンでは普通にできたのですが、OSが7で64ビットの新しいパソコンでは実行してもすぐにコマンドプロンプトが閉じてしまいます。 なにが原因なのでしょうか?OSでしょうか、それともbit数でしょうか。 また、すぐ消えないようにするためにはどのようにすればいいのですか。いろいろな回答を見たのですが、どれも初心者の私には言葉足らずで理解できませんでした。詳しく教えていただけるとありがたいです。よろしくお願いします。

  • Cpadのコンパイル

    Cpad for Borland C++compiler を使ってパソコン甲子園の過去問を解いているときのことです。 突然、実行を行うと実行結果がすぐに消えてしまうようになってしまいました。 前までは実行の最後に英語で何か書かれていて、適当なキーを押すと終了していました。 いったい何が起きたのでしょうか? 分かる方、回答のほうをよろしくお願いします。