getchar 함수

int getchar(void); 표준 입력 스트림의 버퍼에서 맨 앞 문자의 ASCII 코드 값을 반환하는 함수

입력 매개 변수 리스트

없음

반환 값

표준 입력 스트림에서 입력받는 함수에는 getchar, gets, scanf 함수 등이 있습니다. 이러한 함수들은 입력 스트림 버퍼가 비어 있으면 최종 사용자로부터 엔터까지 문자열을 입력받습니다. 하지만 처리하지 않은 문자열이 남아 있으면 최종 사용자로부터 입력을 받지 않습니다. getchar 함수는 표준 입력 스트림 버퍼에 첫 문자를 반환하는 함수입니다.

주의할 점은 이전 입력으로 버퍼에 남아 있는 문자가 있으면 최종 사용자로부터 입력받지 않는다는 점입니다. 예를 들어 scanf(“%d”,&num); 처럼 정수 데이터를 입력받은 후 getchar 함수를 호출하면 버퍼에 최소한 ‘\n’ 는 남아 있는 상태입니다. 따라서 앞에서 입력을 받는 구문이 있다면 getchar 함수는 최종 사용자로부터 입력을 받지 않고 버퍼에 남아 있는 첫 번째 문자를 반환합니다. 만약 최종 사용자로부터 입력 받기를 기대한다면 fflush 함수를 호출하여 버퍼를 비운 후에 getchar 함수를 호출합니다.

  • fflush 함수는 개발 환경에 따라 동작이 다를 수 있습니다.

사용 예

출력

출력 결과를 보면 첫 번째 시도에서는 최종 사용자에게 문자를 입력받지 않고 버퍼에 남아있는 ‘\n’를 반환한 것을 알 수 있습니다. 그리고 두 번째 시도에서는 최종 사용자에게 문자를 입력받고 입력한 문자를 반환하는 것을 알 수 있습니다.