C언어 입력시 scanf로 자료형, 변수명 설정하기


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()에 데이터를 입력하면, 정상적으로 출력이 됩니다.