C 언어에서 scanf 함수는 사용자로부터 입력을 받습니다. 이 기능과 예제를 사용하는 방법을 알아보세요.
( 내용물 )
1. 스캔프
scanf(출력 형식, &변하기 쉬운);
scanf는 사용자로부터 입력을 받는 함수입니다. 입력 값을 출력 형식으로 받는 방법을 설정하고 변수에 값을 할당합니다. 여기서 &는 변수입니다. 변수 이름이 아닌 변수의 주소를 입력합니다. (&는 변수의 주소를 반환하는 주소 연산자입니다.)
int i;
scanf("%d", &i);
위의 코드는 정수 변수 i에 대한 사용자 값을 받는 코드입니다.
int i;
char str(10);
scanf("%d %s", &i, str);
printf("%d %s", i, str);

위와 같이 한 번에 여러 데이터 입력을 받을 수도 있습니다.
변수 이름 자체에 배열에 대한 ‘배열 주소’가 포함되어 있으므로 &를 사용할 필요가 없습니다.
(배열은 배열의 첫 번째 항목의 주소를 가리킴)
2. 공백으로 입력 받기
scanf(“%(^\n)s”, str);
scanf 함수는 공백을 기준으로 입력을 나눕니다. 따라서 scanf(“%d %s”, &i, str) 가능했습니다.
그러나 문자열의 경우 공백을 포함하여 입력을 받아야 할 수도 있습니다. 이 경우 (^\n)만 포함하면 됩니다.
char str(20);
scanf("%(^\n)s", str);
printf("%s", str);

3. 스캔프_에스
이 함수는 scanf에 secure의 약어인 s를 추가합니다.
scanf는 입력을 그대로 받기 때문에 변수의 크기보다 큰 ‘overflow’가 많이 발생했습니다. 그래서 scanf_s 함수가 나왔는데 scanf_s가 문자형을 받았을 때 size size도 인자로 입력해줘야 합니다.
scanf_s( “%s”, str, 크기(str) );
scanf_s는 세 번째 인수만큼 큰 문자열만 허용합니다.
cf) 에디터 오류
#define _CRT_SECURE_NO_WARNINGS
경우에 따라 Microsoft Visual Studio와 같은 엄격한 편집기에서 scanf_s가 사용되지 않는다는 오류가 표시될 수 있습니다. 이 경우 include 문 아래에 위의 코드를 추가하면 해결할 수 있습니다.

