다음을 통해 공유


scanf 형식 필드 문자

다음 정보는 scanf_s와 같은 안전한 버전을 포함한 scanf군의 함수 모두에 적용됩니다.

type 문자는 유일한 필수 형식 필드입니다. 이는 선택적 형식 필드 뒤에 나타납니다. type 문자는 연관된 인수가 문자, 문자열 또는 숫자로 번역될지를 지정합니다.

scanf 함수에 대한 형식 문자

문자

예상되는 입력의 형식

인수 형식

안전한 버전의 크기 인수

c

Character scanf 함수와 함께 사용할 경우, 단일 바이트 문자를 지정합니다. wscanf 함수는 와이드 문자를 지정합니다. 일반적으로 생략되는 공백 문자는 c이 지정되었을 때 읽힙니다. 다음 공백이 아닌 단일 바이트 문자를 읽기 위해서는, %1s를 사용합니다. 다음 공백이 아닌 와이드 문자를 읽기 위해서는, %1ws를 사용합니다.

scanf 함수와 함께 사용할 때에는 char를 가리키는 포인터, wscanf 함수와 함께 사용할 때에는 wchar_t를 가리키는 포인터입니다.

필수적 요소로서, 크기는 null 종료 문자를 포함하지 않습니다.

C

문자의 반대 크기 scanf 함수와 함께 사용할 경우, 와이드 문자를 지정합니다. wscanf 함수는 단일 바이트 문자를 지정합니다. 일반적으로 생략되는 공백 문자는 C이 지정되었을 때 읽힙니다. 다음 공백이 아닌 단일 바이트 문자를 읽기 위해서는, %1s를 사용합니다. 다음 공백이 아닌 와이드 문자를 읽기 위해서는, %1ws를 사용합니다.

scanf 함수와 함께 사용할 때에는 wchar_t를 가리키는 포인터, wscanf 함수와 함께 사용할 때에는 char를 가리키는 포인터입니다.

필수적 요소로서, 크기 인수는 null 종료 문자를 포함하지 않습니다.

d

10진수 정수

int에 대한 포인터

아니요.

i

정수입니다. 입력 문자열이 "0x" 또는 "0X"로 시작하면 16진수이며, 문자열이 "0"으로 시작하면 8진수, 그렇지 않으면 10진수입니다.

int에 대한 포인터

아니요.

o

8진 정수.

int에 대한 포인터

아니요.

u

부호 없는 10진수 정수

unsignedint에 대한 포인터

아니요.

x

16진수 정수

int에 대한 포인터

아니요.

e, E, f, g, G

선택적인 부호 (+ 또는 -)로 구성된 부동 소수점 값, 소수점을 포함한 하나 이상의 10진수의 일련 및 선택적으로 부호가 있는 정수형 값 다음의 선택적인 지수 ("e" 또는 "E")입니다.

float에 대한 포인터

아니요.

n

스트림 또는 버퍼에서 읽을 입력이 없습니다.

scanf 함수 또는 wscanf 함수를 호출한 현재 지점까지 스트림 또는 버퍼에서 성공적으로 읽은 문자의 수가 저장된 int를 가리키는 포인터입니다.

아니요.

s

첫 번째 공백 문자(공백, 탭 또는 줄 바꿈)까지의 문자열입니다. 공백 문자로 구분되지 않은 문자열을 읽기 위해서는 scanf 너비 사양에 설명된 것처럼 대괄호 집합([ ])을 사용합니다.

scanf 함수를 사용할 때는, 단일 바이트 문자 배열을 나타냅니다. wscanf 함수를 사용할 때는, 와이드 문자 배열을 나타냅니다. 두 경우 모두, 문자 배열은 입력 필드와 자동으로 추가되는 null 문자를 포함하기에 충분히 커야 합니다.

필수적 요소로서, 크기는 null 종결 문자를 포함합니다.

S

첫 번째 공백 문자(공백, 탭 또는 줄 바꿈)까지의 반대 크기 문자열입니다. 공백 문자로 구분되지 않은 문자열을 읽기 위해서는 scanf 너비 사양에 설명된 것처럼 대괄호 집합([ ])을 사용합니다.

scanf 함수를 사용할 때는, 와이드 바이트 문자 배열을 나타냅니다. wscanf 함수를 사용할 때는, 단일 문자 배열을 나타냅니다. 두 경우 모두, 문자 배열은 입력 필드와 자동으로 추가되는 null 문자를 포함하기에 충분히 커야 합니다.

필수적 요소로서, 크기는 null 종결 문자를 포함합니다.

a 및 A 지정자는 scanf와 함께 사용할 수 없습니다. (printf 형식 필드 문자을 참조하십시오.)

크기 인수가 필요한 경우 바로 다음 인수에 적용 되는 매개 변수 목록으로 전달되어야 합니다. 예를 들어, 다음 코드는

char string1[11], string2[9];
scanf("%10s %8s", string1, 11, string2, 9);

string1은 최대 길이 10으로, string2는 최대 길이 8로 문자열을 읽습니다. 버퍼 크기는 null 종결자의 예약 공간 때문에 너비 사양보다 적어도 1 더 커야 합니다.

사용된 함수가 단일 바이트 문자 버전인지 또는 와이드 문자 버전인지의 여부와 상관없이 형식 문자열은 단일 바이트 또는 와이드 문자 입력을 처리할 수 있습니다. 따라서, scanf 및 wscanf 함수를 사용하여 단일 바이트 또는 와이드 문자를 읽으려면, 다음과 같은 형식 지정자를 사용합니다.

문자 읽기

이 함수를 사용합니다.

이 형식 지정자를 사용하여

싱글바이트

scanf 함수

c, hc 또는 hC

싱글바이트

wscanf 함수

C, hc 또는 hC

와이드

wscanf 함수

c, lc 또는 lC

와이드

scanf 함수

C, lc 또는 lC

scanf 함수 및 wscanf 함수를 사용하여 문자열을 검색하려면, 형식 유형 지시자 c 및 C 대신에 s 및 S와 함께 위의 표를 사용합니다.

참고 항목

참조

scanf, _scanf_l, wscanf, _wscanf_l