Programming/etc..

콘솔창이 바로 꺼질때

Fabric 2020. 6. 12. 21:51
반응형

콘솔창이 바로 꺼질때(18pt)- [☆]

--

질문게시판에 이런 현상으로 질문하시는분들이 많이 계셔서 올려봅니다.

(선검색 후질문)

--

사진출처 -http://cafe.naver.com/cafec/176257

이런 현상은 에러가 아닙니다.

#include <stdio.h>

int main(void)

{

     printf("Hello, World!\n");

    return 0;

}

 

아마 이코드로 짐작가는 소스를 충실히 컴파일해서 실행했을뿐이죠.

printf함수는 콘솔창에 헬로월드를 출력하고 꺼집니다. 그리고 바로 다음 코드로 진행되죠.

그다음은 return 0; 입니다. return은 함수가 리턴값을 주고 함수가 종료되란 이야기입니다.

콘솔의 모든 프로그램은 진입점이 main함수입니다. 그래서 main함수가 종료되면 콘솔창도 파괴됩니다.

printf로 출력하고 바로 콘솔창이 파괴되는거죠.

 

자, 이제 사용자들이 원하는건 뭘까요?

엔터를 입력하면 꺼지거나 그런 류겠죠.

자, 코드를 변경해봅니다.

#include <stdio.h>

#include <conio.h>

int main(void)

{

     printf("Hello, World!\n");

     getchar();//추가된점

     return 0;

}

 

자, getchar함수는 문자를 입력받습니다. 엔터를 입력받으면 입력받은 문자를 리턴하죠.

엔터가 입력되기 전까진 다음 문장이 실행되지 않고 블록됩니다.

그렇기때문에 바로 main이 종료되지 않고

엔터를 누르면 return 0;을 만나서 콘솔이 파괴되는거죠.

 

 

방법2.

#include <stdio.h>

#include <stdlib.h>

int main(void)

{
      printf("Hello, World!\n");

     system("PAUSE");

      return 0;

}

 

system("PAUSE");는 getchar과 비슷한 역할을 합니다. 대신 뭐라뭐라 출력되는데 그걸 없애고싶다면

system("PAUSE > NUL"); 

 

[출처] 아무키나 눌으세요 없애는방법 알려주세요 (C언어를 배우자) |작성자 스낵

 

이렇게 하심 됩니다.

 

방법3.

그냥 바로 꺼지는 코드를 Visual Studio에서 컨트롤 F5로 실행하면

system("pause");가 붙여져서 나옵니다.

하지만 개발툴에 의존한 방법이므로 그다지 추천하진 않습니다.

 

콘솔창이 바로 꺼지는 경우에 사용하는 방법들!!! 

유용 팁 

 

반응형