사용범위
Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수
기능
C언어 표준 입력 함수이며 로 대부분은 콘솔(Console)로부터 내용을 입력받는다.
헤더
#include <stdio.h>
※ scanf 함수 사용시 stdio.h 파일을 include 하지 않는다면 컴파일시 error 발생 ※
함수
int scanf(const char * restrict format, ...);
restrict
- restrict
- 포인터의 메모리 접근에 관련된 최적화 기능 (C99 표준)
- 특정 포인터가 다른 포인터와 겹치지 않는다는것을 컴파일러에게 알려줘서 최적화를 하기 위해서 사용 (모르면 사용하지 말것)
파라미터
- format
- 문자열 (string) 형태로 scanf 함수를 통해 입력받을 데이터의 서식을 입력한다.
- 서식 지정자 참고
- ...
- C언어의 가변인자로 입력되는 파라미터의 개수를 동적일때 사용한다.
- scanf 에서는 format에 들어가는 내용에 맞춰서 파라미터를 입력해야한다.
- 변수에 할당받기 위해서는 반드시 변수의 주소값을 입력해야 한다. ( & 사용 )
반환값
- scanf 로 입력받는 파라미터의 개수가 int 타입의 숫자로 반환한다.
#include <stdio.h>
int main() {
int a,b,c;
int ret;
ret = scanf("%d %d %d", &a, &b, &c);
printf("ret: %d\n", ret);
return 0;
}
※ 위의 코드 실행시 ret 값은 입력받는 파라미터의 개수인 3이 나옵니다.
&
scanf 를 통해 입력받는 시점에서 몇몇 변수앞에 & 를 붙이는데 이는 해당 변수의 주소값을 전달한다.
변수의 주소값을 전달하는 이유는 scanf 를 통해 입력받은 값을 변수의 주소를 통해 받기위해서다.
간단한 예시를 들면 택배를 받기 위해서 배송받을 주소지를 입력하는것과 같은 원리이다.
반응형
'C언어 > stdio.h' 카테고리의 다른 글
[C언어] fclose 함수 (stdio.h) (0) | 2022.08.02 |
---|---|
[C언어] fopen 함수 (stdio.h) (1) | 2022.08.01 |
[C언어] fputs 함수 (stdio.h) (0) | 2022.07.28 |
[C언어] fgets 함수 (stdio.h) (0) | 2022.07.26 |
[C언어] printf 함수 (stdio.h) (0) | 2022.07.24 |