回答
假設你只有一個線程:
#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. C代碼以非零狀態退出
- 3. 代碼退出狀態255
- 4. 退出狀態碼4479
- 5. 「程序已退出狀態101」
- 6. Apache Spark工作者執行程序退出退出狀態1
- 7. 如何中止一個C++程序並退出狀態0?
- 8. 命名約定:退出狀態,退出代碼或返回碼?
- 9. 列出帶描述的所有系統退出狀態代碼
- 10. 'ls`退出狀態
- 11. 退出C程序
- 12. Docker退出狀態代碼139
- 13. 捕獲退出狀態代碼
- 14. 目標c返回1退出狀態
- 15. 該過程的退出狀態在退出之前已打印
- 16. 如何使用退出代碼退出程序:C#
- 17. c線程程序中的鏈接器錯誤.. ld返回1退出狀態
- 18. 程序退出代碼-SomeNumber
- 19. 任何退出狀態,沒有明確使用返回/退出
- 20. 退出後保留iPhone應用程序的狀態
- 21. 觀察osx應用程序的狀態(開啓,退出)
- 22. wait()SIGCHLD和退出狀態
- 23. Xcode gcc退出狀態1
- 24. ruby at_exit退出狀態
- 25. 退出非零狀態
- 26. shishir已退出狀態10?
- 27. 退出狀態Monad循環
- 28. C#進程批處理文件狀態退出?
- 29. 程序退出後,TcpListener Socket仍然處於活動狀態
- 30. 使用NSWorkspace啓動應用程序後退出狀態launchApplicationAtURL
-1,快速的Web搜索將給予您在任何時間應答。或者即使你簡單地猜到了答案。 (我會給你一個提示:函數叫'exit') – asveikau 2011-05-15 03:39:21