getche() 関数ではプログラムが正常に終了しないので、 exit(int status) 関数を試してみたいと思います。Turbo C++ プログラミング言語ではどのように機能しますか? 関連するヘルプ モジュールの説明を理解できず、より良い説明を探しています... たとえば、関数のパラメーターは何で構成されていますか? 前もって感謝します!
6 に答える
これが何を意味するのか100%確信が持てません。exit 関数へのパラメーター (「int status」) は、シェルに返される数値です。伝統的に、これはプログラムが成功した場合はゼロであり、プログラムが何らかの理由で失敗した場合は >0 です。関数はさまざまなものをクリーンアップしてから、プログラムを終了します。
良い。getch..
通常、キーボードまたは標準入力から文字を取得するような関数。このようなプログラムの最後に使用されることがあります
int main() {
// do many stuff...
// ...
getch();
}
getch/getche (turbo-c++ で e が何を表しているのかわかりません) を使用して、ターミナル ウィンドウが閉じる前に (通常はウィンドウで発生します)、プログラムの出力を表示するための変更をユーザーに提供します。C および C++ で呼び出される移植可能な関数があり、その関数もそのジョブを実行することに注意してくださいgetchar
(さらに入力を待機しますが、ここでは害はありません)。
ただし、プログラムの終了には使用されません。キーが押された後、制御が続行され、main が終了すると、プログラムが存在します。C++ および最近の C バージョンreturn 0;
は、メイン関数の最後のステートメントの後に暗黙的に a を挿入します (0 は「成功」を表します)。これは、メイン関数が値を0
OS に返すことを意味します。ただし、戻り値を明示的に記述してそこに別の値を配置すると、他の値を返すことができます。その値はexit
期待するものです。プログラムを終了し、指定された値を OS に返します。
int main() {
// some stuff...
exit(42);
// other stuff (note: never reached!)
}
そのプログラムは、値 42 を OS に返します。通常、return 42;
そこにいるだけで同じ効果があります (*)。
(*) 完全ではありません: ローカル変数がある場合、 を使用すると、それらのデストラクタは呼び出されませんexit
。しかし、それらはきれいに破棄され、使用するとデストラクタが呼び出されますreturn n;
。return n;
したがって、可能な場合はメインを優先してください。メイン以外の関数で呼び出された exit もプログラムを終了するため、代わりにそれを使用する必要がある場合があります。 return はこれらの特定の関数から戻るだけで、プログラムをまったく終了しないためです。
パラメータは、プロセスの終了ステータスとして起動シェルに返される整数ステータス コードです。終了自体はプロセスを終了し、プロセスが使用している開いているリソースをクリーンアップする必要があります。
Exit() のパラメーターは、終了プロセスの理由またはステータスを示す int です。
少年、それは良く聞こえませんでした。もう一度試してみましょう: これは、開始プロセス (CreateProcess() または ShellExecute() を使用して終了するプロセスを起動するプロセス) に戻される値、またはコンソール アプリの場合は、 ERRORLEVEL 経由でアクセスできるコマンド シェル。
正常に終了している場合は status = 0 を設定するのが一般的です。別の値 (それを受け取るプロセスが必要な場合は意味を持つ可能性があります) を設定して、エラーまたは問題を示します。
パラメータは整数のステータスコードであり、プロセスの終了ステータスとして呼び出し元のシェルに返されます。Exit自体はプロセスを終了し、プロセスが使用している開いているリソースをクリーンアップする必要があります。
「exit」機能の詳細
「exit」関数 プロセスを正常に終了し、プロセスを終了するための定期的なクリーンアップを実行します。
まず、「atexit」の呼び出しによって登録されたすべての関数が、登録された逆の順序で実行されます。次に、すべてのストリームが閉じられ、一時ファイルが削除され、最後に制御がホスト環境に戻されます。
exit の引数として指定された値は、プログラムのリターン コードまたは終了コードとしてオペレーティング システム (ホスト環境) に返されます。慣例により、ゼロの戻りコードは、プログラムが正常に完了したことを意味します。
これで疑問が解消されることを願っています。