11.4 문자 입력받기
숫자뿐만 아니라 문자도 입력받을 수 있습니다. 다음 내용을 소스 코드 편집 창에 입력하세요.
scanf_char.c
#define _CRT_SECURE_NO_WARNINGS // scanf 보안 경고로 인한 컴파일 에러 방지 #include <stdio.h> int main() { char c1; printf("문자를 입력하세요: "); scanf("%c", &c1); // 문자를 입력받아서 변수에 저장 printf("%c\n", c1); // 변수의 내용을 출력 return 0; }
소스를 컴파일하여 실행한 뒤 a를 입력하고 엔터 키를 누르세요.
실행 결과
문자를 입력하세요: a (입력) a
마찬가지로 문자를 입력받을 것이므로 변수는 char로 선언해주고, scanf에 서식 지정자로 %c를 설정해줍니다. scanf에서 %c는 문자 한 개만 입력받을 수 있으므로 문자를 여러 개 입력해도 한 개만 저장되고 나머지는 모두 무시됩니다(첫 번째 문자만 입력됨).
문자열 입력은 문자열을 배운 뒤에 'Unit 36 입력 값을 문자열에 저장하기'에서 자세히 설명하겠습니다.
참고 | getchar로 문자 입력 받기
scanf 함수 대신 getchar 함수를 사용해도 문자를 입력받을 수 있습니다.
getchar.c
#include <stdio.h> int main() { char c1 = getchar(); // 문자 하나를 입력받음 printf("%c\n", c1); return 0; }
소스를 컴파일한 뒤 a를 입력하고 엔터 키를 누르세요.
실행 결과
a (입력) a
getchar 함수는 표준 입력에서 문자 하나를 입력받은 뒤 결과를 반환합니다. 만약 문자 여러 개를 입력해도 첫 번째 문자만 반환됩니다.
getchar 함수에 대응하는 함수로 putchar가 있는데 이 함수는 문자 하나를 화면에 출력합니다.
putchar.c
#include <stdio.h> int main() { char c1 = 'a'; putchar(c1); return 0; }
실행 결과
a
getchar, putchar 함수 모두 stdio.h 헤더 파일에 선언되어 있습니다.