多くの人が POSIX sleep
、 Windows Sleep
、 Windows system("pause")
、 C++を提案してきました…およそ 1920 年代後半から、そこにcin.get()
は DOS さえあり ます。getch()
これらのいずれも行わないでください。
これらのソリューションはどれも、私のチームのコード レビューに合格しませんでした。つまり、このコードを製品に含めるために送信した場合、コミットはブロックされ、別の解決策を見つけるように言われます. (趣味で遊んでいるだけなら、物事はそれほど深刻ではないと主張する人もいるかもしれませんが、お気に入りのプロジェクトで良い習慣を身につけることが、ビジネス組織で価値のある専門家になり、雇用を維持できると私は提案します. )
プログラムの出力を読めるようにコンソール ウィンドウを開いたままにしておくことは、プログラムの責任ではありません。プログラムの最後に待機/スリープ/ブロックを追加すると、単一責任の原則に違反し、大規模な抽象化リークが発生し、プログラムの再利用性/連鎖性が失われます。一時的な使用上の理由でブロックされます。これは非常に良くありません。
代わりに、プログラムが作業を終了した後もプロンプトを開いたままにするように環境を構成する必要があります。あなたのバッチスクリプトラッパーは良いアプローチです! 手動で更新し続けなければならず、IDE から呼び出すことができないのがいかに面倒かがわかります。スクリプトがプログラムへのパスをパラメーターとして実行するようにし、プログラムを直接呼び出す代わりに IDE を構成することができます。
暫定的なクイック スタート アプローチは、IDE の実行コマンドをcmd.exe <myprogram>
またはから に変更する<myprogram>
ことcmd.exe /K <myprogram>
です。への/K
スイッチcmd.exe
は、指定されたパスのプログラムが終了した後もプロンプトを開いたままにします。これは、バッチ スクリプト ソリューションよりも少し面倒exit
です。プログラムの出力を読み終わったら、スペース バーを叩くだけでなく、赤い 'X' を入力またはクリックする必要があるからです。
IDE の使用を想定しています。それ以外の場合は、既にコマンド プロンプトから呼び出しているためです。これはそもそも問題にはなりません。さらに、Windows の使用を想定していますが (質問に記載されている詳細に基づいて)、この回答はどのプラットフォームにも当てはまります。