다양한 언어를 지원하면서 강력한 디버깅 기능을 가지고 있는 비주얼 스튜디오는 이클립스와 더불어 가장 많이 사용되는 IDE(통합 개발환경, Integrated Developing Environment)입니다. 아직도 대다수의 사람들이 프로그래밍을 배울 때 C나 C++로 시작합니다. 가장 기본이 되면서 중요하기 때문이죠. 많은 대학교에서 C를 기초과목으로 가르치고 있는 것도 비슷한 이유일 것입니다. Visual Studio는 C와 C++, C#과 닷넷 등에 대한 강력한 개발환경을 지원하는데다, DreamSpark 프로그램을 통해 교육기관이나 학생들에게 무료로 배포되기 때문에 많은 사랑을 받고 있죠.


프로그래밍을 처음 배우시는 분들이나 간단한 프로그램을 만드는 경우 보통 과거 도스 환경을 연상케 하는, "까만 바탕에 하얀 글씨" 인터페이스인 콘솔 응용 프로그램을 만들게 됩니다.

일반적인 콘솔 응용 프로그램의 예


일반적으로 코딩을 하는 경우 먼저 코드를 작성 한 뒤, 프로그램을 실행 해 자신의 코드가 잘 동작하는 지 확인하고 오류를 잡기 위한 '디버깅'과정을 반복하게 됩니다.


Visual Studio에서는 Ctrl + F5키를 이용해 프로그램을 실행, 즉 "디버깅 하지 않고 시작(Start without debugging)"할 수 있습니다. 그러면 명령 프롬프트가 실행되면서 창에서 결과값을 확인할 수 있죠. 그런데 프로그램이 종료되면서 이 콘솔 창이 사라지게 되면 프로그램이 종료되기 전까지의 결과를 확인할 수 없게 됩니다. 그래서 아래 그림처럼 Visual Studio는 자동으로 프로그램이 종료되기 직전에프로그램을 멈추어 줍니다.

비주얼 스튜디오에서 종료 직전에 프로그램을 자동으로 멈춘 모습


즉, 비주얼 스튜디오가 소스코드에 다음과 같이 system("pause")를 자동으로 추가해 주는 것입니다.

#include <stdio.h>

int main(...)
{
    //작성한 코드
     system("pause");
     return 0;
}


하지만, 프로젝트 생성 시 콘솔 응용 프로그램으로 생성하지 않는 경우 Build 할 때의 flag가 달라져 Ctrl + F5를 이용해 실행하는 경우에도 프로그램이 종료되면 자동으로 콘솔 창이 꺼지는 경우가 있습니다.

이런 경우 위 코드처럼 소스코드 마지막에 system("pause")를 추가하거나 다음과 같이 프로젝트 속성을 바꿔 주면 됩니다.


1. 메뉴의 [프로젝트(Project)] - ['프로젝트 이름' 속성(Properties)]으로 들어갑니다.


2. 왼쪽의 [구성 속성(Configuration Properties)] - [링커(Linker)]에서 [시스템(System)]을 선택하고, 오른쪽의 [하위 시스템(Subsystem)]에서 [콘솔 Console (/SUBSYSTEM:CONSOLE)]을 선택합니다.


3. 이제 Ctrl + F5를 눌러 프로그램을 실행하면 종료 후 창이 사라지지 않는 것을 확인할 수 있습니다.

비주얼 스튜디오에서 종료 직전에 프로그램을 자동으로 멈춘 모습



WRITTEN BY
편지함
The Base Code of the Human Race

받은 트랙백이 없고 , 댓글  5개가 달렸습니다.
  1. system(pause);
    유용하네요!
  2. ctrl f5 하면은 콘솔창이 안꺼지는데 왜 디버깅하면 꺼지죠? 물론 속성 설정은 콘솔로 했는데도 그러네요
    디버깅버튼을 누르고서 안꺼지려면 system푸쉬를 프로젝트 하단에써줄수 밖에 없나요?
  3. ctrl f5 하면은 콘솔창이 안꺼지는데 왜 디버깅하면 꺼지죠? 물론 속성 설정은 콘솔로 했는데도 그러네요
    디버깅버튼을 누르고서 안꺼지려면 system푸쉬를 프로젝트 하단에써줄수 밖에 없나요?
  4. 감사합니다
  5. 아하 그렇군요
    감사합니다.
secret