2011-05-15 22 views
6

C++ stdlib에서 상태 코드가있는 프로그램 실행을 종료하는 데 사용되는 함수는 무엇입니까?상태가 C++ 프로그램 종료

자바에서있다 :

#include <iostream> 

int main() 
{ 
    std::cout << "Hello, World!\n"; 

    return(0); 
    // PROGRAM ENDS HERE. 

    std::cout << "You should not see this.\n"; 

    return(0); 
} 

출력 :

System.exit(0) 
+6

-1, 빠른 웹 검색은 당신에게 전혀 시간에 답을 준 것이다. 또는 단순히 대답을 추측 한 경우에도 마찬가지입니다. (나는 당신에게 힌트를 줄 것이다 : 함수는'exit'라고 불린다.) – asveikau

답변

10

은 하나 개의 스레드가 가정

Hello, World! 

return(0); 당신이 좋아 삽입 될 수 있습니다 - 그것은 '을 결국 int main()이 끝나고 프로그램이 종료됩니다.


또는, 당신은 어디에서 exit(EXIT_SUCCESS); or exit(EXIT_FAILURE);를 호출 할 수 있습니다 당신이 좋아 :

당신은 또한 소멸자, 할당 해제 등을 호출하지 않고, quick_exit (종료 종료, 중단을 호출 할 수 있습니다 다른 응답에 추가
/* 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; 
} 
+5

'return'은 함수가'main' 일 때까지 프로그램을 종료하지 않는다는 것을주의하라. 반면에'exit'는 어떤 함수로부터 프로그램을 종료시킬 것이다. 그걸 불렀다. –

+0

'main'에서 돌아 오는 일부 시스템 (주로 유닉스 계열 플랫폼)에서 다른 스레드도 종료된다는 것을 보았습니다. 저는 C++ 0x가 이것에 대해 무엇을 말하고 있는지 확실하지 않습니다 만, 최근까지 스레드가 모든 C 또는 C++ 언어 표준의 일부가 아니므로 모든 종류의 동작을 볼 수 있습니다. 어쨌든 질문자는 '퇴거'를 매우 분명히 요구하고 있습니다. – asveikau

0

, 따라서 이름)

기본적으로 호출을 중단하지만 설정 한 모든 종료 처리기를 호출 할 수 있습니다.

/* 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; 
} 

I : quick_exit 호출 할 수있다 (종료에 의해 사용되는 핸들러가 SE에) 중단하고 set_terminate의

예 사용량

// 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 예 (실시 예 2 참조) 왜 사람이 quick_exit를 호출 할 지 모르지만 그것이 존재하기 때문에 문서를 제공해야합니다 (http://www.cplusplus.com/reference)

Addi at_quick_exit와 동등한 at_exit를 호출 할 수 있습니다.

틀림없이 set_terminate에 익숙하지 않고 종료해야합니다. 직접 호출하지 않아도되지만, 원할 경우 quick_exit를 종료 처리기로 사용할 수 있습니다. 또는 관례 것 (그러나 저에 저를 인용하지 말라).

C++에서
-1

, 당신은 출구를 사용할 수 있습니다 (0) 예를 들어 :

switch(option){ 
     case 1: 
     //statement 
     break; 
     case 2: 
     //statement 
     exit(0);