[C] scanf 함수

less than 1 minute read

scanf 함수는 printf 함수와 동일하게 f, formatted 즉 서식을 지정할 수 있다. scanf 함수는 입력을 받아들이는 함수이며, printf 와 동일하게 표준 라이브러리 함수이기 때문에 사용시 #include <stdio.h> 를 서두에 선언해야 한다. 입력 장치에 대한 지정을 특별히 하지 않았다면, scanf 의 입력은 표준입력체계를 통해 들어오며, 보통 기보드 입력을 받는다. 함수는 받은 입력을 할당하기 위해 변수의 메모리 주소를 참조한다 (메모리 주소에 대한 내용은 추후 다룬다). 변수나 배열, 구조체의 주소를 전달하며 & 표시를 통해 구분한다.

visual stdio 의 경우 컴파일 시 경고가 타나다고, scanf_s를 사용하라는 경고가 나타난다. 경고를 무시하기 위해 #define _CRT_SECURE_NO_WARNINGS 를 적어주거나 #programa waring(disable:4996) 을 적어주면 된다.
int 자료형을 입력으로 받을 때는 %d 포맷지시자를 사용하고 각각의 입력은 White space(띄어쓰기, 탭, 엔터)로 구분된다. char 자료형을 입력으로 받을 때는 %c 포맷지시자를 사용한다. 문자열을 입력으로 받을 때에는 %s 를 사용하며 문자의 경우 White space가 모두 입력으로 분류된다.

    #include <stdio.h>

    int main(void){
        int a;
        char b;
        char c[10];

        scanf("%d", &a);
        scanf("%c", &b);
        scanf("%s", c);
        printf("\n");
        printf("%d\n", a);
        printf("%c\n", b);
        printf("%s\n", c);

        return 0;
    }   
4s spring

4
s
spring