설명

표준 입력로부터 서식을 갖춘 데이터를 입력받습니다.

서식을 갖춘다는 것은 입력을 어떤 모양에 맞추어 입력을 받는다는 것입니다. 아래의 서식에 사용하는 변환 문자열을 참고하세요.

주의하실 점은 서식에 맞추어 입력하질 못하면 다음 scanf까지 모두 에러가 발생하므로 조심하여야 합니다. 예제의 결과를 확인하세요.

변환 문자열 의미
%o 8진 정수 형식으로 입력
%d 10진 정수 형식으로 입력
%ld long형 10진 정수 형식으로 입력
%x 16진 정수 형식으로 입력
%f float 형 형식으로 입력
%lf double 형 형식으로 입력
%c 문자 형식으로 입력
%s 문자열 형식으로 입력

헤더 stdio.h
형태 int scanf(const char * format, ... );
인수 char *format 서식 문자열
반환 int 입력된 항목 수를 반환하며, 오류가 발생하면 EOF를 반환
예제
#include <stdio.h>

int main( void)
{
   int   n_num;
   float   f_num;
   char  str[1024];
   int   ret;

   ret   = scanf( "%d", &n_num);                      // 10진수를 받습니다.
   printf( "ret=%d %dn", ret, n_num);

   ret   = scanf( "%d%f", &n_num, &f_num);            // 10진수와 실수를 받습니다.
   printf( "ret=%d %d %fn", ret, n_num, f_num);

   ret   = scanf( "%d%f%s", &n_num, &f_num, str);     // 10진수, 실수, 문자열 하나를 받습니다.
   printf( "ret=%d %d %f %sn", ret, n_num, f_num, str);

   return 0;
}
]$ ./a.out
123
ret=1 123
123 123.123          <- 서식에는 공백이 없어도 구분을 위해 공백을 삽입
ret=2 123 123.123001
123 123.123 forum.falinux.com
ret=3 123 123.123001 forum.falinux.co
]$ ./a.out
abc                 <- 수자로 변경될 수 없는 문자열을 입력하면
ret=0 13578228      <- 이후로 입력이 없어도 계속 EOF를 반환하고 프로그램 종료
ret=0 13578228 0.000000
ret=0 13578228 0.000000 %