snprintf() — 형식화된 데이터를 버퍼로 출력
형식
#include <stdio.h>
int snprintf(char *buffer, size_t n, const char *format-string,
argument-list);
언어 레벨
ANSI
스레드세이프
예
로케일 감지
이 함수의 작동은 현재 로케일의 LC_CTYPE 및 LC_NUMERIC 범주에 영향을 받을 수 있습니다. 작동은 LOCALETYPE(*LOCALEUCS2) 또는 LOCALETYPE(*LOCALEUTF)가 컴파일 명령에서 지정되면 현재 로케일의 LC_UNI_CTYPE 범주에 영향을 받을 수도 있습니다. 자세한 정보는 CCSID 및 로케일 이해의 내용을 참조하십시오.
설명
snprintf() 함수는 배열 버퍼에 일련의 문자와 값의 형식을 지정하고 저장합니다. argument-list가 변환되며 format-string의 해당 형식 스펙에 따라 만들어집니다. snprintf() 함수는 n 인수가 추가된 sprintf() 함수와 동일하며, 버퍼에 작성될 최대 개수의 문자(끝 널 문자 포함)를 표시합니다.
format-string은 일반 문자로 구성되며 printf() 함수에 대한 형식 스트링과 같은 형식과 함수가 있습니다.
리턴값
snprintf() 함수는 끝 널 문자를 계산하지 않고 배열에 작성된 바이트 수를 리턴합니다.
예
이 예는 snprintf()를 사용하여 다양한 데이터의 형식을 지정하고 출력합니다.
#include <stdio.h>
char buffer[200];
int i, j;
double fp;
char *s = "baltimore";
char c;
int main(void)
{
c = 'l';
i = 35;
fp = 1.7320508;
/* Format and print various data */
j = snprintf(buffer, 6, "%s\n", s);
j += snprintf(buffer+j, 6, "%c\n", c);
j += snprintf(buffer+j, 6, "%d\n", i);
j += snprintf(buffer+j, 6, "%f\n", fp);
printf("string:\n%s\ncharacter count = %d\n", buffer, j);
}
/********************* Output should be similar to: *************
string:
baltil
35
1.732
character count = 15 */