본문 바로가기
C C++/C언어 기초

C언어 #5 - C언어 데이터입력 scanf_s 함수의 의미

by Go! Jake 2021. 12. 28.

C언어 scanf_s 함수

#include <stdio.h>

int main(void)
{
	int result;
	int num1, num2, num3;

	printf("정수 one: ");
	scanf_s("%d %d %d", &num1, &num2, &num3);
	printf("%d %d %d",num1, num2, num3);
	return 0;

}

 

scanf 함수는 사용자로부터 입력을 받는 함수이다. 돌려보니 scanf로는 컴파일이 안돼서 살펴보니 scanf_s를 사용하라고 한다. scanf는 버퍼 오버플로우가 있을 수 있어 scanf_s로 버퍼 영역을 우선해서 버퍼 오버플로우 없이 사용되도록 권장하고 있다.

 

scanf_s("%d %d %d", &num1, &num2, &num3); 를 보면 입력받는 인자부분에 %d로 정의하면 정수를 입력받을 수 있도록 하는 것이다. 예를 데이터 타입으로도 입력을 요구할 수 있다. 여기에 &num1의 의미는 num1에 그 값을 입력하라는 의미이다.

 

즉, 사용자로부터 1 2 3이 입력되면 num1, num2, num3에 각각 1 2 3이 입력된다.

scanf_s 함수는 공백을 기준으로 데이터를 구분하고, 따라서 위에서 정수 3개를 입력할 때 스페이스바, 탭 또는 엔터 키를 입력하면 된다.

 

 

해당 내용은 윤성우 열혈 C프로그래밍을 참조하였습니다.

 

 

댓글