본문 바로가기

프로그래밍 -----------------------/C,C++ 기초

11. C에서 키보드 입력받는 방법 getchar() - 표준입력



11. C에서 키보드 입력받는 방법 getchar() - 표준입력

키보드로 입력받는 것은 console, api, mfc, directX, 등등.. 프로젝트특성에 따라 다릅니다.
여기에선 기초적인 console기반프로그램에서 입력받는 것을 해보도록 하죠.

대표적으로는 getchar()와 scanf()가 있습니다.
이번글에서는 getchar()만 하고 다음글에 scanf()하도록 하죠.

getchar()함수는 키보드로부터 한번에 한문자씩 읽어들입니다. 여기서 getchar()함수는 키보드에서 입력된 문자의 아스키코드값이 입력됩니다.
즉 키보드에서 "A"를 누르면 getchar()함수가 읽어들여서 ASCII코드값이 65인 "A"가 할당됩니다.

아스키코드를 잘 모르시겠으면 [C,C++ 레퍼런스] - 아스키 코드표 를 보시면 되겠습니다.


간단하게 "A"를 가지고 테스트 해보도록 하죠.

"A"를 아스키코드로 확인해보면 65입니다. 정말 65인지 확인해 보도록하죠.


getchar()를 사용하여 키보드 입력받기
#include <stdio.h>

void main()
{
char ch;
printf("키보드에서 아무거나 입력하신후 엔터를 누르세요.^^\n");

ch = getchar();

printf("%c를 입력하였습니다.\n", ch);
printf("%c의 아스키코드= %d \n", ch, ch);
}

소스를 컴파일한 후 실행한 후에 "A"를 입력하고 엔터를 입력합니다.

자, 결과값을 확인해 볼까요.

결과값



자, 눈으로 확인했습니다. "A"는 아스키코드로 65 이군요. ^^

getchar()를 사용할때에는 유념해야할 점이 있습니다. 
만약 문자로 "AADASDASDASDS" 이렇게 길게 입력해도 getchar()는 첫번째 글자만 읽는다는 것이죠.

"ASASDSAD"  --->  A만 읽어짐
"345TRTTRT"  --->  3만 읽어짐

아셨죠? 간단합니다. 걍 첫번째 문자하나만 읽는다라고 생각하시면 쉽습니다. 



정리하자면,

getchar()는 키보드로부터 한번에 한 문자씩만을 읽어오며 아스키코드를 반환합니다.