형식 사양 필드: scanf
및 wscanf
함수
이 정보는 보안 버전을 포함하여 전체 scanf
함수 제품군에 적용됩니다. 입력 스트림과 같은 입력 스트림을 프로그램 변수에 삽입되는 값으로 stdin
구문 분석하는 방법을 함수에 알려주 scanf
는 데 사용되는 기호를 설명합니다.
인수는 format
입력 해석을 지정하는 문자열이며 다음 중 하나 이상을 포함할 수 있습니다.
공백 문자: 공백(
\t
); 또는 줄바꿈(\n
). 공백 문자는scanf
를 통해 읽을 수 있지만 입력에서 다음 공백이 아닌 문자까지의 모든 연속 공백 문자는 저장되지 않습니다. 형식의 공백 문자 하나는 입력의 모든 숫자(0 포함) 및 공백 문자 조합과 일치합니다.백분율 기호(
%
)를 제외한 공백이 아닌 문자. 공백이 아닌 문자는scanf
를 통해 일치하는 공백이 아닌 문자를 읽을 수 있지만 저장하지는 않습니다. 입력 스트림의 다음 문자가 일치하지scanf
않으면 종료됩니다.백분율 기호(
%
)를 포함한 형식 지정. 형식 사양을 사용하면scanf
입력의 문자를 읽고 지정된 형식의 값으로 변환합니다. 값은 인수 목록 중 하나에 할당됩니다.형식 지정은 다음과 같습니다.
%
[*
][]width
[{h
ll
||L
l
|I64
|}]type
여기서는
width
너비h
I64
ll
l
사양을 나타내scanf
고L
type
형식 필드 문자를 나타냅니다.scanf
format
인수 문자열은 왼쪽에서 오른쪽으로 읽습니다. 형식 사양을 벗어난 문자는 입력 스트림의 문자 시퀀스와 일치해야 합니다. 입력 스트림에서 일치하는 문자는 검색되지만 저장되지 않습니다. 입력 스트림의 문자가 형식 사양 scanf
과 충돌하면 종료되고 문자는 읽지 않은 것처럼 입력 스트림에 남아 있습니다.
첫 번째 형식 사양이 발견되면 이 사양에 따라 첫 번째 입력 필드의 값이 변환됩니다. 이 값은 인수 뒤에 오는 첫 번째 인수로 지정된 위치에 저장됩니다 format
. 두 번째 형식 사양을 사용하면 형식 문자열의 끝을 통해 두 번째 입력 필드가 변환되어 다음 인수에 저장됩니다.
입력 필드는 첫 번째 공백 문자(공백, 탭 또는 줄 바꿈)까지의 모든 문자 또는 형식 사양에 따라 변환할 수 없는 첫 번째 문자까지 또는 필드 너비(지정된 경우)에 도달할 때까지 정의됩니다. 주어진 지정에 너무 많은 인수가 있을 경우 추가 인수들이 평가되지만 무시됩니다. 형식 사양에 대한 인수가 충분하지 않으면 결과를 예측할 수 없습니다.
형식 지정의 각 필드는 특정 형식 옵션을 나타내는 숫자 또는 단일 문자입니다. 마지막 선택적 형식 필드 뒤에 나타나는 type
문자는 입력 필드가 문자, 문자열 또는 숫자 중 어떤 것으로 해석될지를 결정합니다.
가장 간단한 형식 지정에는 백분율 기호와 type
문자만 포함됩니다(예: %s
). 백분율 기호(%
)와 형식 제어 문자로 의미가 없는 문자가 뒤에 오는 경우 해당 문자와 다음 문자(다음 퍼센트 기호까지)는 일반 문자 시퀀스로 처리됩니다. 즉, 입력과 일치해야 하는 문자 시퀀스로 처리됩니다. 예를 들어 백분율 기호 문자를 입력으로 지정하려면 %%
를 사용합니다.
백분율 기호 다음에 나타나는 별표(*
)는 지정된 형식의 필드로 해석되는 다음 입력 필드의 할당을 표시하지 않습니다. 필드는 검색되지만 인수에 저장되지 않습니다.
함수 패밀리의 보안 버전(접미사가 있는 _s
버전)에는 형식c
의 각 매개 변수가 S
C
s
필요하거나 [
버퍼 크기 매개 변수가 즉시 전달되어야 합니다.scanf
함수 제품군의 scanf
보안 버전에 대한 자세한 내용은 , , _wscanf_s_l
_scanf_s_l
wscanf_s
.scanf_s
참고 항목
scanf
너비 사양
scanf
필드 문자 입력
scanf
, _scanf_l
, wscanf
_wscanf_l
scanf_s
, _scanf_s_l
, wscanf_s
_wscanf_s_l