c언어 / 엔터키 사용 콘솔 창 닫기 / 자동 닫힘 방지

C언어를 처음 공부할 때 콘솔 창이 자동으로 닫히는 경우 때문에 난감할 때가 있다.
터미널에서 직접 실행해도 되지만, 텍스트 명령어를 입력하는 것 때문에 불편함도 있다.
엔터키를 사용하여 콘솔 창 닫기 방법이 있다면 편할 것 같다.
표준 C함수 중 getchar()를 사용하면 엔터키를 사용한 콘솔 창 닫기가 가능해 진다.

c언어 / 엔터키 사용 콘솔 창 닫기 / 자동 닫힘 방지
c언어
엔터키 사용 콘솔 창 닫기
자동 닫힘 방지

불편한 콘솔 창 자동 닫힘

지금의 C언어가 자주 사용되는지는 모르겠지만, 어쨌든 처음 공부를 시작할 때 느끼는 점은 불편함에 있다.
아마도 리눅스 사용자들이라면 표준 C언어를 사용할 것이지만, 윈도우의 비주얼스튜디오를 설치하고 C언어를 컴파일 실행하면 불편하다.
또한, 공부를 위해 코드를 입력하고 실행을 시키면 콘솔 창이 나타났다 바로 사라진다.
당혹스럽지만 해결책은 있다.
`getchar()` 함수를 사용하여 입력 대기 상태로 설정하면 된다.
코드의 마지막에 해당 함수를 작성하면 프로그램의 동작이 멈추고 문자를 입력받도록 기다리도록 하는 것이다.

getchar() / 표준 C함수

getchar() 함수를 간단히 살펴보자.
getchar() 함수는 사용자가 키보드로 문자를 입력받을 때까지 대기시키는 표준 C 라이브러리이다.
프로그램이 실행 중 해당 함수를 만나면 중단하고, 사용자가 키보드를 누를 때까지 기다린다.
과거 프로그램들이 텍스트 기반으로 어떤 명령어를 입력받기 위해 자주 사용되었다.
리턴값은 int형의 숫자이며, 키보드의 엔터키를 누를 경우 종료된다.
C언어를 처음 공부할 때 콘솔 창이 자동으로 닫히는 경우 getchar() 함수를 사용하여 엔터키를 눌러 종료시키도록 할 수 있다.

  • getchar() / 표준 C 함수
    • 사용자가 키보드를 누를 때까지 대기.
    • 리턴값은 숫자.
    • 엔터키: 문자 입력의 종료.

예제 코드

예제 코드를 살펴보자.
아주 간단한 C 언어 코드이다.
실행하면 콘솔 창이 나타나고 문자열을 출력한다.
사용자로부터 어떤 문자를 입력받도록 기다린 후 엔터를 치면 프로그램이 종료되도록 하였다.
물론, 콘솔 또는 터미널에서 직접 실행하면 어떤 차이인지 보이지 않겠지만, 비주얼스튜디오에서 실행했을 경우 getchar() 입력함수를 사용해 콘솔창 자동 닫힘을 방지할 수 있다.
그리고, 엔터키를 치면 프로그램이 종료되고 콘솔창이 사라지는 것을 볼 수 있다.


#include <stdio.h>

int main(void) {

    /* 문자열 출력 */
    printf("hello, world.\n");

    /* 중단처리, 엔터키 종료 */
    printf("\n");
    printf("아무 키나 누르고 Enter를 누르세요...\n");
    int ch = getchar();
    printf("입력한 문자: %c\n", ch);

    /* 프로그램 종료 */
    return 0;
}

결과보기

비주얼스튜디오를 사용한다면 위의 코드를 입력한 후 단축키 F5를 누르면 작성된 코드를 콘솔창에 실행하는 모습을 보여줄 것이다.
그리고, 아무 키나 누르고 Enter를 누르세요...란 메세지가 나타나고 프로그램은 대기 상태에 놓인다.
사용자가 키보드를 누르기를 기다리는 것이다.
키보드를 아무거나 누르면 눌려진 키보드의 문자가 보이겠지만, 엔터키를 누르면 프로그램이 종료되며 콘솔창도 닫히는 것을 볼 수 있다.
비주얼스튜디오에서 콘솔 창의 자동 닫힘 방지를 위해 getchar() 함수를 사용할 수 있음을 알았다.

getchar() / 엔터키 입력 대기
getchar()
엔터키 입력 대기

댓글