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 헤더 파일에 선언되어 있습니다.