C언어는 scanf()
함수로 변수값을 입력받습니다. scanf()
는 입력할 자료형의 종류를 같이 기입해줘야 하며 종류는 정수형(%d
), 실수형(%f
), 문자(%c), 문자형(%s
) 등이 있습니다.
scanf() 함수는 데이터를 입력받습니다.
C언어에서는 입력 모드에서 출력 및 변수 선언 처럼 어떤 형태의 자료를 입력받을 것인지 자료형을 같이 기입해줘야 합니다. scanf()
에서는 변수명 앞에 대부분 &
기호를 삽입해야 합니다.
scanf("자료형", &변수명);
scanf()
는 데이터를 입력받기 위해서 변수를 먼저 선언해야 합니다. 출력과 달리 입력받을 데이터는 변수에 저장하기 때문입니다.
#include<stdio.h>
void main() {
int x;
scanf("%d", &x); //정수형(%d) 자료를 변수명 x에 입력받습니다.
}
scanf()
함수 보안 오류가 발생한다면 scanf_s()
로 사용하거나 하단 내부 참조의 오류 메시지 삭제를 참고합니다.
입력 가능 자료형 종류
scanf()
함수에 입력 가능한 자료형의 종류에는 정수(%d
), 실수(%f
), 문자(%c
), 문자열(%s
) 등이 있습니다.
변수값 미지정시 사용
scanf()
함수는 변수값을 입력하지 않았을 때 사용자로부터 직접 입력받기 위해서 사용합니다. 아래 예제의 경우 변수명은 x
로 지정했지만 변수 x
에 아무런 변수값도 지정되지 않았습니다. 그러므로 출력을 하면 오류가 발생합니다.
#include<stdio.h>
void main() {
int x; //정수 자료형 조건의 변수 x를 생성했습니다. 하지만 변수 x에는 변수값이 지정되지 않았습니다.
printf("%d", x); //변수 x는 비어있으므로, 출력을 하면 오류가 발생합니다.
}
x = 3;
과 같이 변수에 변수값을 직접 입력하지 않고, scanf()
함수를 이용해서 입력을 유도할 수 있습니다.
#include<stdio.h>
void main() {
int x; //정수형(int) 자료형의 변수 x를 저장 공간을 생성했습니다. 변수 x의 내부는 현재 비어있습니다.
printf("임의의 정수를 입력하세요."); //사용자에게 메시지를 전달합니다.
scanf("%d", &x); //사용자가 정수 형태(%d)의 데이터를 변수 x의 내부에 삽입합니다.
printf("%d", x); //scanf()가 변수 x에 삽입한 정수를 출력합니다.
}
변수값이 미지정되었지만, scanf()
에 데이터를 입력하면, 정상적으로 출력이 됩니다.