回答
假設你只有一個線程:
#include <iostream>
int main()
{
std::cout << "Hello, World!\n";
return(0);
// PROGRAM ENDS HERE.
std::cout << "You should not see this.\n";
return(0);
}
輸出:
Hello, World!
的return(0);
可以放在任何你喜歡的 - 這是將結束int main()
,因此你的程序。
或者,你可以調用從任何地方你喜歡:
/* exit example */
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE * pFile;
pFile = fopen("myfile.txt", "r");
if(pFile == NULL)
{
printf("Error opening file");
exit (1);
}
else
{
/* file operations here */
}
return 0;
}
請注意,'return'不會退出程序,除非該函數恰好是'main',而'exit'會從任何函數中終止程序在其中被稱爲。 – 2011-05-15 03:52:04
我已經看到,在一些從'main'返回的系統上(大部分類Unix平臺)也會終止其他線程。我不確定C++ 0x需要說些什麼,但是直到最近線程並不是任何C或C++語言標準的一部分,您纔會看到各種行爲。無論如何,提問者都非常明確地要求「退出」。 – asveikau 2011-05-15 03:55:25
除了其他答覆,你還可以調用中止,終止,quick_exit(退出而不調用析構函數,解除分配等;因此名稱)
終止呼叫在默認情況下中止,但可以調用您設置的任何終止處理程序。中止和set_terminate(瑟由終止所使用的處理程序),quick_exit可稱爲
實施例的使用(見實施例#2)
// set_terminate example
#include <iostream> // std::cerr
#include <exception> // std::set_terminate
#include <cstdlib> // std::abort
void myterminate() {
std::cerr << "terminate handler called\n";
abort(); // forces abnormal termination
}
int main (void) {
std::set_terminate (myterminate);
throw 0; // unhandled exception: calls terminate handler
return 0;
}
quick_exit/at_quick_exit例如:
/* at_quick_exit example */
#include <stdio.h> /* puts */
#include <stdlib.h> /* at_quick_exit, quick_exit, EXIT_SUCCESS */
void fnQExit (void)
{
puts ("Quick exit function.");
}
int main()
{
at_quick_exit (fnQExit);
puts ("Main function: Beginning");
quick_exit (EXIT_SUCCESS);
puts ("Main function: End"); // never executed
return 0;
}
我我不完全確定爲什麼會打電話給quick_exit但它存在,因此我應該爲它提供文件(http://www.cplusplus.com/reference提供)
Addi可以將at_exit作爲at_quick_exit的等價函數。
不可否認,我並不是那麼熟悉set_terminate並終止,因爲我不會自己調用它們,但是我想如果你願意,可以使用quick_exit作爲終止處理程序;或自定義的(但請不要在此引用我)。
在C++中,你可以使用退出(0) 例如:
switch(option){
case 1:
//statement
break;
case 2:
//statement
exit(0);
- 1. 退出程序的狀態
- 2. 程序退出狀態
- 3. C代碼以非零狀態退出
- 4. 代碼退出狀態255
- 5. 退出狀態碼4479
- 6. 檢查退出狀態退出狀態
- 7. 「程序已退出狀態101」
- 8. c - 在後臺運行的程序的退出狀態
- 9. Apache Spark工作者執行程序退出退出狀態1
- 10. 如何中止一個C++程序並退出狀態0?
- 11. 命名約定:退出狀態,退出代碼或返回碼?
- 12. 不同的BASH退出狀態代碼
- 13. 用代碼01退出的C++程序沒有執行代碼
- 14. 列出帶描述的所有系統退出狀態代碼
- 15. 'ls`退出狀態
- 16. 退出C程序
- 17. KnpSnappyBundle產生退出狀態碼「2」
- 18. Docker退出狀態代碼139
- 19. 捕獲退出狀態代碼
- 20. download.file()中的R具有非零退出狀態
- 21. 退出非零狀態(repl.it)C++?
- 22. 目標c返回1退出狀態
- 23. 該過程的退出狀態在退出之前已打印
- 24. c線程程序中的鏈接器錯誤.. ld返回1退出狀態
- 25. 如何使用退出代碼退出程序:C#
- 26. 安裝包'Rmpfr'具有非零退出狀態
- 27. AWS上的Node應用程序的Docker退出狀態1
- 28. 程序退出代碼-SomeNumber
- 29. 退出應用程序時保存按鈕的新狀態
- 30. 「ld返回1退出狀態」在簡單的程序
-1,快速的Web搜索將給予您在任何時間應答。或者即使你簡單地猜到了答案。 (我會給你一個提示:函數叫'exit') – asveikau 2011-05-15 03:39:21