none
コマンドプロンプトがすぐに消えてしまう RRS feed

  • 質問

  • 今C言語をはじめたばかりのものなのですが、プログラムコードをつくり、ビルドして、デバックの開始を行いました。すると、コマンドプロンプトの画面が表示されるのですが、一瞬で消えてしまいます。表示されている内容はあっているのですが、どのようにしたらずっと表示されるようになるのでしょうか?

    ちなみに、いまC言語の本を読みながら勉強してるのですが、その本では同じプログラムコードをやっているのに、「続行するには何かキーを押してください...」という文字が表示されているプロンプトの写真がのっています

    2010年6月13日 7:44

回答

  • 手元にVC++Expressを実行できる環境がないのでデバッグなしで実行がちゃんと動いていないのかがちょっと不安ですが。。。2005/2008のころは、デバッグしないで実行を行ったコンソールアプリは、プログラム終了時に一緒にとまっていました。

    ただし!エクスプローラから直接実行した場合や、デバッグで実行の場合は、終了後すぐにコンソールが閉じてしまいます。

    一応念のため。エクスプローラから実行してデバッグしないで実行。。。とは言ってないですよね?

     

    あと、C言語と言ってるので、終了時に停止させるなら、fgets() などを最後に呼び出すようにする方法もあります。

    これなら、デバッグ実行関係なしに止められる。。。けど、本を読みながら勉強中のようなので。。。とりあえずコードは出さないことにします。

    テスト実行は、コマンドプロンプトを開いて、出力先のフォルダに移動し、コマンドプロンプト上でEXEを実行するという形がいい気がします。


    わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/
    • 回答の候補に設定 山本春海 2010年6月16日 7:12
    • 回答としてマーク 山本春海 2010年6月29日 6:55
    2010年6月13日 13:47

すべての返信

  • デバッグなしで実行(Ctrl+F5)で実行してみてください。それで画面と同じこと本と同じ状態になると思います。

     


    わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/
    2010年6月13日 8:50
  • デバッグなしでもすぐに消えてしまうのです

    2010年6月13日 10:11
  • ちなみにVisual Studioのバージョンはいくつでしょうか?
    とりあえず最後にReadKeyメソッドを追加すれば止まるでしょう。

    ReadKey メソッド
    http://msdn.microsoft.com/ja-jp/library/system.console.readkey(VS.80).aspx


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/

    • 編集済み trapemiya 2010年6月13日 11:46 参考ページへのリンクを掲載
    2010年6月13日 11:32
  • Microsoft Visual C++ 2010 Express

    とあります

     

    2010年6月13日 11:46
  • とりあえず、DebugBreak() を入れて、明示的に Break-in させてみては?

    DebugBreak

    http://msdn.microsoft.com/ja-jp/library/cc428927(v=MSDN.10).aspx

     

    2010年6月13日 12:52
  • 手元にVC++Expressを実行できる環境がないのでデバッグなしで実行がちゃんと動いていないのかがちょっと不安ですが。。。2005/2008のころは、デバッグしないで実行を行ったコンソールアプリは、プログラム終了時に一緒にとまっていました。

    ただし!エクスプローラから直接実行した場合や、デバッグで実行の場合は、終了後すぐにコンソールが閉じてしまいます。

    一応念のため。エクスプローラから実行してデバッグしないで実行。。。とは言ってないですよね?

     

    あと、C言語と言ってるので、終了時に停止させるなら、fgets() などを最後に呼び出すようにする方法もあります。

    これなら、デバッグ実行関係なしに止められる。。。けど、本を読みながら勉強中のようなので。。。とりあえずコードは出さないことにします。

    テスト実行は、コマンドプロンプトを開いて、出力先のフォルダに移動し、コマンドプロンプト上でEXEを実行するという形がいい気がします。


    わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/
    • 回答の候補に設定 山本春海 2010年6月16日 7:12
    • 回答としてマーク 山本春海 2010年6月29日 6:55
    2010年6月13日 13:47
  • エクスプローラから・・・・という内容がちょっとわからないのですが・・・・・

    ただ、そのソフト上でコードを入力し、それをビルド→デバッグなしで実行というふうにやってます。

    そのソフトの中でファイル(?)を作って入力して というかんじです。知識がなくうまく説明できなくてすみません。

    今はプロンプトからやってるのですが、その場所までたどりつくのが大変なのでできればデバッグなしで実行でうまくできればと思っていたのですが・・・。

    とりあえずプロンプトでやってみます

    親切な対応ありがとうございました。

    2010年6月13日 14:08
  • 会社にあるExpressな環境でコンソールアプリを作ってみました。メニューにはデバッグなしで実行は、デフォルトの設定では出てないですね。

    メニューで ツール-設定-上級者用の設定

    を選ぶと、メニュー-デバッグ-デバッグなしで実行が選択できるようになります。これでメニューから試してみてください。

    プログラム終了時に、自動的にコンソール画面が閉じることがなくなるはずです。

    もし、それでも閉じてしまうということであれば、インストールが失敗しているなど別の理由があるように思われます。

     


    わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/
    2010年6月14日 2:41
  • 再インストールし、上記同じようにしてデバックなしで実行を行いましたが、やはりだめでした・・・。

    まったく同じ内容を2008の方で行ったところ、デバックなしでうまくいきました。

    もしかしたら、アンインストールをきちっとできていなかったかもしれません。2010をインストールするとき、項目が少なかったので。

    とりあえず2008の方を使ってやってみたいと思います。

    2010年6月16日 15:01
  • もしや、「CLRコンソールアプリケーション」でプロジェクトを作成されているのでは?

    「Win32コンソールアプリケーション」でプロジェクトを作成されているのであれば、

    デバックなし実行で、「続行するには何かキーを押してください...」と出るはずですが、

    「CLRコンソールアプリケーション」では出ません。

    「CLRコンソールアプリケーション」で作ったプロジェクトでは、

    「デバック実行(F5)」でも、「デバックなし実行(Ctrl+F5)」でも上記のような文句は出ず、プロンプトも実行終了後自動的に閉じます。

    2010年6月21日 7:56
  • プロジェクトのプロパティを開いて、

    「構成プロパティ→リンカー→システム→サブシステム」を、「コンソール (/SUBSYSTEM:CONSOLE)」 にすると、続行するには~というのが出るようです

    2010年6月21日 11:21
  • おお、なった。ありがとうございます(*´∇`*)。

    2013年4月11日 1:11