형식 제어 사양입니다. 일반 ASCII 문자 외에도 각 인수에 대한 형식 사양이 이 문자열에 나타납니다. 형식 사양에 대한 자세한 내용은 설명 섹션을 참조하세요.
...
하나 이상의 선택적 인수입니다. 인수 매개 변수의 수와 형식은 lpFmt 매개 변수의 해당 형식 제어 사양에 따라 달라집니다.
반환 값
형식: int
함수가 성공하면 반환 값은 종료 null 문자를 계산하지 않고 출력 버퍼에 저장된 문자 수입니다.
함수가 실패하면 반환 값이 예상 출력의 길이보다 작습니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
설명
format-control 문자열에는 lpFmt 매개 변수 다음 인수의 출력 형식을 결정하는 형식 사양이 포함되어 있습니다. 아래에서 설명하는 형식 사양은 항상 백분율 기호(%)로 시작합니다. 백분율 기호 뒤에 서식 필드로 의미가 없는 문자가 있으면 문자의 서식이 지정되지 않습니다(예: %%는 단일 백분율 기호 문자를 생성).
형식 제어 문자열은 왼쪽에서 오른쪽으로 읽습니다. 첫 번째 형식 사양(있는 경우)이 발견되면 형식 제어 문자열 뒤의 첫 번째 인수 값이 형식 사양에 따라 변환되고 출력 버퍼에 복사됩니다. 두 번째 형식 사양으로 인해 두 번째 인수가 변환 및 복사됩니다. 형식 사양보다 더 많은 인수가 있는 경우 추가 인수는 무시됩니다. 모든 형식 사양에 대한 인수가 충분하지 않으면 결과가 정의되지 않습니다.
형식 지정은 다음과 같습니다.
%[-][][#0][width][.precision]type
각 필드는 특정 형식 옵션을 나타내는 단일 문자 또는 숫자입니다. 마지막 선택적 형식 필드 뒤에 나타나는 형식 문자는 연결된 인수가 문자, 문자열 또는 숫자로 해석되는지 여부를 결정합니다. 가장 간단한 형식 사양에는 백분율 기호와 형식 문자(예: %s)만 포함됩니다. 선택적 필드는 서식의 다른 측면을 제어합니다. 다음은 선택적 및 필수 필드와 그 의미입니다.
필드
의미
-
오른쪽에 공백 또는 0으로 출력을 패딩하여 필드 너비를 채우고 출력을 왼쪽에 양쪽으로 맞춤합니다. 이 필드를 생략하면 출력이 왼쪽에 패딩되어 오른쪽에 양쪽 맞춤됩니다.
#
접두사 16진수 값은 0x(소문자) 또는 0X(대문자)입니다.
0
필드 너비를 채우려면 출력 값을 0으로 채웁니다. 이 필드를 생략하면 출력 값에 빈 공백이 채워집니다.
width
지정된 최소 문자 수를 출력 버퍼에 복사합니다.
너비 필드는 nnnegative 정수입니다. 너비 사양으로 인해 값이 잘리지 않습니다. 출력 값의 문자 수가 지정된 너비보다 크거나 너비 필드가 없으면 전체 자릿수 사양에 따라 값의 모든 문자가 인쇄됩니다.
. 정밀도
숫자의 경우 지정된 최소 자릿수를 출력 버퍼에 복사합니다. 인수의 숫자 수가 지정된 전체 자릿수보다 작으면 출력 값이 왼쪽에 0으로 채워집니다. 숫자 수가 지정된 전체 자릿수를 초과하면 값이 잘리지 않습니다. 지정된 전체 자릿수가 0이거나 완전히 생략되었거나 마침표(.)가 숫자 없이 나타나면 전체 자릿수는 1로 설정됩니다.
문자열의 경우 지정된 최대 문자 수를 출력 버퍼에 복사합니다.
type
해당 인수를 문자, 문자열 또는 숫자로 출력합니다. 이 필드는 다음 값 중 한 개일 수 있습니다.
c
단일 문자입니다. 이 값은 wsprintfA에 의해 CHAR 형식으로 해석되고 wsprintfW로 WCHAR를 입력합니다. 참고 wsprintf 는 wsprintfA (유니코드가 정의되지 않음) 또는 wsprintfW (유니코드 정의됨)로 정의된 매크로입니다.
C
단일 문자입니다. 이 값은 wsprintfA에 의해 WCHAR 형식으로 해석되고 wsprintfW로 CHAR를 입력합니다. 참고 wsprintf 는 wsprintfA (유니코드가 정의되지 않음) 또는 wsprintfW (유니코드 정의됨)로 정의된 매크로입니다.
d
부호 있는 10진수 정수입니다. 이 값은 과 i같습니다.
hc, hC
단일 문자입니다. 문자의 숫자 값이 0이면 무시됩니다.
이 값은 호출 애플리케이션이 유니코드를 정의하는 경우에도 항상 CHAR 형식으로 해석됩니다.
hd
부인 짧은 정수 인수입니다.
hs, hS
문자열입니다. 이 값은 호출 애플리케이션이 유니코드를 정의하는 경우에도 항상 LPSTR 형식으로 해석됩니다.
hu
부호 없는 짧은 정수입니다.
i
부호 있는 10진수 정수입니다. 이 값은 과 d같습니다.
Ix, IX
64비트 플랫폼의 소문자 또는 대문자로 된 64비트 부호 없는 16진수 정수, 32비트 플랫폼의 소문자 또는 대문자로 된 32비트 부호 없는 16진수 정수입니다.
lc, lC
단일 문자입니다. 문자의 숫자 값이 0이면 무시됩니다.
이 값은 호출 애플리케이션이 유니코드를 정의하는 경우에도 항상 WCHAR 형식으로 해석됩니다.
ld
긴 부인 정수입니다. 이 값은 과 li같습니다.
li
긴 부인 정수입니다. 이 값은 과 ld같습니다.
ls, lS
문자열입니다. 이 값은 호출 애플리케이션이 유니코드를 정의하지 않는 경우에도 항상 LPWSTR 형식으로 해석됩니다. 이 값은 과 ws같습니다.
lu
부호 없는 긴 정수입니다.
lx, lX
긴 부호 없는 16진수 정수(소문자 또는 대문자)입니다.
p
포인터. 주소는 16진수로 인쇄됩니다.
s
문자열입니다. 이 값은 wsprintfA에 의해 LPSTR 형식으로 해석되고 wsprintfW별로 LPWSTR을 입력합니다. 참고 wsprintf 는 wsprintfA (유니코드가 정의되지 않음) 또는 wsprintfW (유니코드 정의됨)로 정의된 매크로입니다.
S
문자열입니다. 이 값은 wsprintfA에 의해 LPWSTR 형식으로 해석되고 wsprintfW로 LPSTR을 입력합니다. 참고 wsprintf 는 wsprintfA (유니코드가 정의되지 않음) 또는 wsprintfW (정의된 유니코드)로 정의된 매크로입니다.
u
부호 없는 정수 인수입니다.
x, X
부호 없는 16진수 정수(소문자 또는 대문자)입니다.
참고wsprintf 는 표준 호출(_stdcall) 호출 규칙 대신 C 호출 규칙(_cdecl)을 사용합니다. 결과적으로 호출 프로세스는 스택에서 인수를 팝해야 하며 인수는 오른쪽에서 왼쪽으로 스택에 푸시됩니다. C 언어 모듈에서 C 컴파일러는 이 작업을 수행합니다.
1024바이트보다 큰 버퍼를 사용하려면 _snwprintf 사용합니다. 자세한 내용은 C 런타임 라이브러리에 대한 설명서를 참조하세요.
참고
winuser.h 헤더는 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 wsprintf를 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.