키보드로 데이터를 입력받는 함수이며 printf와 마찬가지로 stdio.h 헤더 파일이 필요하다.
기본 구조는 아래 이미지와 같이 이루어져 있다.
입력 서식 문자는 출력 서식 문자와 비슷한 개념이다. 위 그림에서 입력을 저장하는 변수에 &a라고 되어 있는데, a가 변수이며 &a는 a의 메모리 주소이다. 엠퍼센드라고 부른다.
즉, a를 부르면 a에 저장된 값을 부르는 것이고, &a를 부르면 a의 메모리 공간의 주소를 부르는 것이다.
%d 10진수 정수 입력
%x 16진수 정수 입력
%o 8진수 정수 입력
-> 정수이므로 셋다 int변수
#include <stdio.h>
int main(void)
{
int a, b, c;
printf("10진수 정수 1개 입력 : ");
scanf("%d", &a);
printf("10진수 : %d, 16진수 : %x, 8진수 : %o \n", a, a, a);
printf("16진수 정수 1개 입력 : ");
scanf("%x", &b);
printf("10진수 : %d, 16진수 : %x, 8진수 : %o \n", b, b, b);
printf("8진수 정수 1개 입력 : ");
scanf("%o", &c);
printf("10진수 : %d, 16진수 : %x, 8진수 : %o \n", c, c, c);
return 0;
}
%f float형 실수 입력
%lf double형 실수 입력
-> 각각 float, double 형 변수로 받음
%e float형 e표기법에 의한 실수 입력
%le double형 e 표기법에 의한 실수 입력
-> 각각 float, double 형 변수로 받음
#include <stdio.h>
int main(void)
{
float f1, f2;
double d1, d2;
printf("float형 실수 두 개 입력 : ");
scanf("%f %e", &f1, &f2);
printf("floqt형 실수 출력 : f1 = %f, f2 = %e \n", f1, f2);
printf("double형 실수 두 개 입력 : ");
scanf("%lf %le", &d1, &d2);
printf("double형 실수 출력 : d1 = %lf, d2 = %le \n", d1, d2);
return 0;
}
%c 한 개의 문자 입력
%s 문자열 입력
%u 10진수 정수(양수만 표현 가능) 입력