printf 형식 필드 문자
서식 사양에서, type 문자는 대응하는 인수가 문자, 문자열, 정수 또는 부동 소숫점 수로 해석될 수 있는지 여부를 지정하는 변환 지정자입니다. type 문자는 유일한 필수 형식 사양이고, 이는 선택적 형식 필드 뒤에 나타납니다.
서식 문자열의 뒤를 잇는 인수는 상응하는 type 문자 및 선택적 size 접두사에 의해 해석됩니다. 문자 형식 char 및 wchar_t에 대한 변환은 c 또는 C을 사용하는 것에 의해 지정되고, 단일 바이트 및 멀티 바이트 또는 와이드 문자열은 사용되는 서식 함수에 의존하여 s 또는 S를 사용하는 것에 의해 지정됩니다. c 및 s를 사용하여 지정된 문자 및 문자열 인수는 printf군 함수에 의해 char 및 char*로서 해석되거나, wprintf군 함수에 의해 wchar_t 및 wchar_t*로서 해석됩니다. C 및 S를 사용하여 지정된 문자 및 문자열 인수는 printf군 함수에 의해 wchar_t 및 wchar_t*로서 해석되거나, wprintf군 함수에 의해 char 및 char*로서 해석됩니다.
short, int, long, long long과 같은 정수 타입과 그들의 unsigned변형은, d, i, o, u, x 및 X를 사용하여 지정됩니다. float, double 및 long double와 같은 부동 소수점 형식은 a, A, e, E, f, g 및 G을 사용하여 지정됩니다. 기본적으로, 그들이 size필드 길이 접두사에 의해 수정되지 않으면, 정수 인수는 int형식으로 강제되고, 부동 소수점 인수는 double으로 강제됩니다. 64비트 시스템에서, int는 32비트 값입니다. 따라서, ll의 size 접두사 또는 I64이 사용되지 않는 한, 그들이 출력을 위해 서식화될 때, 64비트 정수들은 잘립니다. p에 의해 지정된 포인터 형식은 플랫폼의 기본 길이를 사용합니다.
참고
그들이 printf 및 wprintf 함수를 사용하여 사용될 때, C, S 및 Z 형식 문자와, c의 동작 및 s 형식 문자는 Microsoft 확장명이고 ANSI와 호환되지 않습니다.Visual C++는 F 형식 문자를 지원하지 않습니다.
printf 형식 필드 문자
형식 문자 |
인수 |
출력 형식 |
---|---|---|
c |
문자 |
printf 함수와 함께 사용할 경우, 단일 바이트 문자를 지정합니다. wprintf 함수는 와이드 문자를 지정합니다. |
C |
문자 |
printf 함수와 함께 사용할 경우, 와이드 문자를 지정합니다. wprintf 함수는 단일 바이트 문자를 지정합니다. |
d |
정수 |
부호 있는 10진수 정수 |
i |
정수 |
부호 있는 10진수 정수 |
o |
정수 |
부호 없는 8진수 정수 |
u |
정수 |
부호 없는 10진수 정수 |
x |
정수 |
부호 없는 16진수 정수. "abcdef."를 사용합니다. |
X |
정수 |
부호 없는 16진수 정수. "ABCDEF."를 사용합니다. |
e |
부동 소수점 |
d에서 양식 [ – ]d.dddd e[sign]dd[d]을 가지는 부호 있는 값은 한 자리 10진수이고, dddd는 한 자리 또는 그 이상의 10진수이고, output format 및 지수의 크기에 의존하는 dd[d]는 둘 또는 세 자리 10진수이고, sign은 + 또는 - 입니다. |
E |
부동 소수점 |
지수를 도입하는 데에 E보다는 e을 사용하는 점을 제외하고는 e 형식과 유사합니다. |
f |
부동 소수점 |
dddd에서 양식 [ – ]dddd.dddd를 가지는 부호 있는 값은 한 자리 또는 그 이상의 10진수입니다. 소수점 앞의 자리수는 숫자의 크기에 따라 달라지고, 소수점 뒤의 자리수는 요청된 정밀도에 따라 달라집니다. |
g |
부동 소수점 |
부호 있는 값은 f 또는 e 서식에서 출력됩니다. 어느 쪽이든 주어진 값 또는 정밀도가 더 간결합니다. 값 지수가 -4보다 작거나, precision 인수와 같을 경우, e 서식만 사용됩니다. 뒤에 오는 0이 잘리고, 한 자리 또는 그 이상의 10진수가 그것에 뒤따를 때에만 소수점만 나타납니다. |
G |
부동 소수점 |
지수를 도입하는 데에 e보다는 E를 사용하는 것을 제외하면, g 서식과 유사합니다. (적절한 곳에서) |
a |
부동 소수점 |
h.hhhh에서 양식 [−]0xh.hhhh p±dd을 가진 부호 있는 16진수 이중 정밀도 부동 소수점 값은 (소문자를 사용한) 가수의 16진수이고, dd은 지수에 대한 하나 또는 그 이상의 수입니다. 정밀도는 꼭짓점 뒤의 자릿수를 지정합니다. |
A |
부동 소수점 |
h.hhhh에서 양식 [−]0Xh.hhhh P±dd을 가진 부호 있는 16진수 이중 정밀도 부동 소수점 값은 (대문자를 사용한) 가수의 16진수이고, dd은 지수에 대한 하나 또는 그 이상의 수입니다. 정밀도는 꼭짓점 뒤의 자릿수를 지정합니다. |
n |
정수를 가리키는 포인터 |
스트림 또는 버퍼에 지금까지 성공적으로 작성된 문자의 수입니다. 이 값은 인수로서 주어진 정수의 주소에 저장됩니다. 후에 이 문서의 보안 참조를 참고하십시오. |
p |
포인터 유형 |
인수를 16진수로 주소로서 표시합니다. |
s |
String |
printf 함수를 사용하여 사용될 때, 단일 바이트 또는 멀티 바이트 문자열을 지정합니다. wprintf 함수를 사용하여 사용될 때, 와이드 문자열을 지정합니다. 첫 번째 null 문자까지 혹은 precision 값에 도달할 때까지 문자가 표시됩니다. |
S |
String |
printf 함수를 사용하여 사용될 때, 와이드 문자열을 지정합니다. wprintf 함수를 사용하여 사용될 때, 단일 바이트 또는 멀티 바이트 문자열을 지정합니다. 첫 번째 null 문자까지 혹은 precision 값에 도달할 때까지 문자가 표시됩니다. |
Z |
ANSI_STRING 또는 UNICODE_STRING 구조체 |
ANSI_STRING 또는 UNICODE_STRING 구조체의 주소가 인수로서 전달되었을 때, 구조체의 Buffer필드가 가리키는 버퍼에서 포함된 문자열을 표시합니다. UNICODE_STRING 인수를 지정하기 위해 w의 접두사 길이 수정자를 사용합니다. 예를 들어, %wZ 입니다. Length구조체의 필드는 반드시 문자열의 바이트 길이로 설정해야 합니다. MaximumLength구조체의 필드는 반드시 버퍼의 바이트 길이로 설정해야 합니다. 일반적으로, Z 형식 문자는 dbgPrint 및 kdPrint과 같은 서식 기능을 사용하는 드라이버 디버깅 함수에서만 사용됩니다. |
부동 소수점 변환 지정자에 상응하는 인수가 무한이거나, 규정되지 않거나, NAN일 경우, 다음 표는 서식 출력을 나열합니다.
값 |
Output |
---|---|
+ infinity |
1.#INFrandom-digits |
– infinity |
–1.#INFrandom-digits |
Indefinite (quiet NaN와 동일) |
digit.#INDrandom-digits |
NAN |
digit.#NANrandom-digits |
참고
%Z에 상응하는 인수의 Buffer 필드 또는 %s 또는 %S에 상응하는 인수의 필드는 null 포인터이고, "(null)"이 표시됩니다.
참고
모든 지수 서식으로, 표시될 지수의 기본 자릿수는 3입니다._set_output_format 함수를 사용하여, 사용자는 지수 크기에 따라 필요한 경우 두 자리로 표시되었으나 세 자리로 확장된 자릿수를 설정할 수 있습니다.
보안 정보 |
---|
%n 서식은 본질적으로 안전하지 않기 때문에, 기본적으로 비활성화됩니다.%n가 서식 문자열로 발생된 경우, 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다.%n 지원을 사용할 수 있게 하기 위해, _set_printf_count_output을 참조하십시오. |