• ベストアンサー

コンソールプログラムが閉じる

以前こちらでC++のお試しコードでも書いてみたらとご指導を受け、 コンストラクタの動きを理解するため等々、 何個かコンソールプログラムを書いてみました。 それで処理が終了するとコンソールが勝手に閉じてしまうものと、 Press any Key to continue と表示されて止まっているものがあります。 処理としては後者の止まっている状態の方が正しいようで、 しかもその状態でないと画面に表示させた内容を十分に確認できません。 勝手に閉じるというのは設定が変なのか、 それとも#ifdefのような記述が必要なのか、全然分かりません。 よろしくお願いします。

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

  • ベストアンサー
  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.5

「実行」するとPress~が出ますが 「デバッグ実行」するとPress~は出ません。 私もよく言われますが、お礼に一言余計な気がします。 「それだけ想像力が~」のくだりとか。 あまり気分のいいものではありませんよ。

ruby7
質問者

お礼

すみません。。。 初心者でコードが読めてないとか書かれたものですから 随分飛躍してくれるなあと思ったんで・・・ お気遣いの言葉も頂いたので、言葉は選んだつもりです。 他の人まで不快な気分にさせたのなら申し訳なかったです。

その他の回答 (4)

  • ddnp009
  • ベストアンサー率25% (15/58)
回答No.4

IDEから直接コンソールプログラムを起動しているなら、 『デバッグなしで開始』(デフォルトでCtrl+F5) を行うことで、プログラム終了後に静止するはず。 >Press any Key to continue 但しブレイクポイント無効。 ・・・こういうこと?

ruby7
質問者

お礼

うまくいきました。 どうもありがとうございます。

回答No.3

コマンドプロンプトは本来、業務を遂行するように作られているので、コマンドプロンプトでの業務がおわれば、閉じてしまいます。 また、普通、プログラムの勉強をしていると、いちいち閉じられてしまっては、不便な場合が多々あるので、スタート→プログラム→アクセサリ→コマンドプロンプトとして、コマンドプロンプト自体を開いてしまい、その後、abc.exeとか実行したいファイル名をコマンドすると、abc.exeが終了した後もコマンドプロンプトは開いたままです。 >Press any Key to continue と表示されて止まっているものがあります これに関しましては、あなたは初心者なのでコードを読めてないと思いますが、「なにかキーをおしてくれるまで静止する」という命令コードがプログラムの中に書かれているはずです。ただ、単純にそれだけの話です。 プログラムは慣れるまで大変ですが、がんばってください。

ruby7
質問者

お礼

・・・ コードは1から全部自分が書いてます。 今回はVCのデバッガの動きが変みたいなので、その質問だったのです。 それだけ想像力が豊かならデバッガの方に気付いてくれればありがたかったです。 どうもありがとうございました。

  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.2

普通に、例えば int main() { printf("Hello world!\n"); return 0; } のようなプログラムを書いたとき GUI(エクスプローラー)上からexeファイルをダブルクリックして実行した場合、一瞬表示されてすぐにwindowが閉じてしまいます。 一方で、VCから「実行」すると、Press~と表示されてキーを押すまで終了しません。これはVCの機能です。 自動で閉じるのを抑制したい場合は、getsなどの入力を待つ関数をreturnの前に入れる必要が有ります。 また、コンソール(コマンドプロンプト)上から実行すると、終了してもWindowは閉じません。

ruby7
質問者

お礼

う~ん つまりVC上のデバッガで実行しているんです だからpress~と出る場合と出ない場合があると書いてあるんです。 何がおかしいんでしょうか。

  • hawkwind
  • ベストアンサー率34% (160/469)
回答No.1

それで環境は何でしょうか?

ruby7
質問者

お礼

すみません。VC++6.0です。

関連するQ&A