형식 사양 필드: scanf 및 wscanf 함수Format Specification Fields: scanf and wscanf Functions

이 정보는 안전한 버전을 포함한 전체 scanf 함수 패밀리에 적용되며, scanf용 입력 스트림 stdin과 같은 입력 스트림을 프로그램 변수로 삽입된 값으로 구문 분석하는 방법을 scanf 함수에 지시하는 데 사용하는 기호를 설명합니다.The information here applies to the entire scanf family of functions, including the secure versions and describes the symbols used to tell the scanf functions how to parse the input stream, such as the input stream stdin for scanf, into values that are inserted into program variables.

형식 지정은 다음과 같습니다.A format specification has the following form:

%[*] [width] [{h | l | ll | I64 | L}]type%[*] [width] [{h | l | ll | I64 | L}]type

format 인수는 입력에 대한 해석을 지정하고 다음 중 하나 이상을 포함할 수 있습니다.The format argument specifies the interpretation of the input and can contain one or more of the following:

  • 공백 문자: 공백(' '), 탭('\t') 또는 줄 바꿈('\n').White-space characters: blank (' '); tab ('\t'); or newline ('\n'). 공백 문자는 scanf를 통해 읽을 수 있지만 입력에서 다음 공백이 아닌 문자까지의 모든 연속 공백 문자는 저장되지 않습니다.A white-space character causes scanf to read, but not store, all consecutive white-space characters in the input up to the next non-white-space character. 형식의 공백 문자 하나는 입력의 모든 숫자(0 포함) 및 공백 문자 조합과 일치합니다.One white-space character in the format matches any number (including 0) and combination of white-space characters in the input.

  • 백분율 기호(%)를 제외한 공백이 아닌 문자.Non-white-space characters, except for the percent sign (%). 공백이 아닌 문자는 scanf를 통해 일치하는 공백이 아닌 문자를 읽을 수 있지만 저장하지는 않습니다.A non-white-space character causes scanf to read, but not store, a matching non-white-space character. 입력 스트림의 다음 문자가 일치하지 않는 경우 scanf가 종료됩니다.If the next character in the input stream does not match, scanf terminates.

  • 백분율 기호(%)를 포함한 형식 지정.Format specifications, introduced by the percent sign (%). 형식 지정은 scanf를 통해 입력의 문자를 읽고 지정된 형식의 값으로 변환합니다.A format specification causes scanf to read and convert characters in the input into values of a specified type. 값은 인수 목록 중 하나에 할당됩니다.The value is assigned to an argument in the argument list.

    형식은 왼쪽에서 오른쪽으로 읽습니다.The format is read from left to right. 형식 지정 외부의 문자는 입력 스트림의 문자 시퀀스와 일치해야 합니다. 입력 스트림의 일치하는 문자는 검색되지만 저장되지는 않습니다.Characters outside format specifications are expected to match the sequence of characters in the input stream; the matching characters in the input stream are scanned but not stored. 입력 스트림의 문자가 형식 지정과 충돌할 경우 scanf는 종료되고 입력 스트림 안의 문자는 읽히지 않은 채로 남습니다.If a character in the input stream conflicts with the format specification, scanf terminates, and the character is left in the input stream as if it had not been read.

    첫 번째 형식 지정에서는 첫 번째 입력 필드의 값이 해당 지정에 따라 변환되어 첫 번째 argument에서 지정한 위치에 저장됩니다.When the first format specification is encountered, the value of the first input field is converted according to this specification and stored in the location that is specified by the first argument. 두 번째 형식 지정은 두 번째 입력 필드를 변환하여 두 번째 argument에 저장하고 이런 식으로 형식 문자열 끝까지 진행됩니다.The second format specification causes the second input field to be converted and stored in the second argument, and so on through the end of the format string.

    입력 필드는 첫 번째 공백 문자(공백, 탭 또는 줄 바꿈), 형식 지정에 따라 변환할 수 없는 첫 번째 문자 또는 필드 너비(지정된 경우)에 도달할 때까지의 모든 문자로 정의됩니다.An input field is defined as all characters up to the first white-space character (space, tab, or newline), or up to the first character that cannot be converted according to the format specification, or until the field width (if specified) is reached. 주어진 지정에 너무 많은 인수가 있을 경우 추가 인수들이 평가되지만 무시됩니다.If there are too many arguments for the given specifications, the extra arguments are evaluated but ignored. 형식 지정에 충분한 인수가 없는 경우 결과를 예측할 수 없습니다.The results are unpredictable if there are not enough arguments for the format specification.

    형식 지정의 각 필드는 특정 형식 옵션을 나타내는 숫자 또는 단일 문자입니다.Each field of the format specification is a single character or a number signifying a particular format option. 마지막 선택적 형식 필드 뒤에 나타나는 type 문자는 입력 필드가 문자, 문자열 또는 숫자 중 어떤 것으로 해석될지를 결정합니다.The type character, which appears after the last optional format field, determines whether the input field is interpreted as a character, a string, or a number.

    가장 간단한 형식 지정에는 백분율 기호와 type 문자만 포함됩니다(예: %s).The simplest format specification contains only the percent sign and a type character (for example, %s). 백분율 기호(%) 뒤에 아무 의미가 없는 형식 제어 문자가 올 경우, 해당 문자 및 이후의 문자(다음 백분율 기호까지)는 입력과 반드시 일치해야 하는 일반 문자 시퀀스로 처리됩니다.If a percent sign (%) is followed by a character that has no meaning as a format-control character, that character and the following characters (up to the next percent sign) are treated as an ordinary sequence of characters, that is, a sequence of characters that must match the input. 예를 들어 백분율 기호 문자를 입력으로 지정하려면 %%를 사용합니다.For example, to specify that a percent-sign character is to be input, use %%.

    백분율 기호 다음에 나타나는 별표(*)는 지정된 형식의 필드로 해석되는 다음 입력 필드의 할당을 표시하지 않습니다.An asterisk (*) following the percent sign suppresses assignment of the next input field, which is interpreted as a field of the specified type. 필드가 검색되지만 저장되지 않습니다.The field is scanned but not stored.

    _s 함수 패밀리의 안전한 버전(scanf 접미사 포함)에는 c, C, s, S 또는 [ 형식의 각 매개 변수 바로 뒤에 전달할 버퍼 크기 매개 변수가 필요합니다.The secure versions (those with the _s suffix) of the scanf family of functions require that a buffer size parameter be passed immediately following each parameter of type c, C, s, S or [. scanf 함수 패밀리의 안전한 버전에 대한 자세한 내용은 scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l을 참조하세요.For more information on the secure versions of the scanf family of functions, see scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l.

참고 항목See Also

scanf 너비 사양 scanf Width Specification
scanf 형식 필드 문자 scanf Type Field Characters
scanf, _scanf_l, wscanf, _wscanf_l scanf, _scanf_l, wscanf, _wscanf_l
scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_lscanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l