int sprintf(char *buffer, const char *format, ...);
#include <stdio.h>
int main() {
char str[100];
int num = 123;
float pi = 3.14159;
sprintf(str, "정수: %d", num);
printf("%s\\n", str); *// 출력: 정수: 123*
sprintf(str, "실수: %.2f", pi);
printf("%s\\n", str); *// 출력: 실수: 3.14*
return 0;
}
#include <stdio.h>
int main() {
char result[200];
char name[] = "김철수";
int age = 25;
float height = 175.5;
sprintf(result, "이름: %s, 나이: %d세, 키: %.1fcm", name, age, height);
printf("%s\\n", result);
*// 출력: 이름: 김철수, 나이: 25세, 키: 175.5cm*
return 0;
}
#include <stdio.h>
int main() {
char filename[100];
int year = 2024;
int month = 12;
int day = 25;
sprintf(filename, "log_%04d%02d%02d.txt", year, month, day);
printf("생성된 파일명: %s\\n", filename);
*// 출력: 생성된 파일명: log_20241225.txt*
*// 여러 파일 생성*
for(int i = 1; i <= 5; i++) {
sprintf(filename, "data_file_%03d.csv", i);
printf("%s\\n", filename);
}
*// 출력:// data_file_001.csv// data_file_002.csv// ...*
return 0;
}
#include <stdio.h>
int main() {
char hex_str[50];
char oct_str[50];
int value = 255;
sprintf(hex_str, "0x%X", value); *// 대문자 16진수*
sprintf(oct_str, "0%o", value); *// 8진수*
printf("10진수 %d = 16진수 %s = 8진수 %s\\n",
value, hex_str, oct_str);
*// 출력: 10진수 255 = 16진수 0xFF = 8진수 0377*
return 0;
}
*// 위험한 코드*
char small_buffer[10];
sprintf(small_buffer, "This is a very long string that will overflow");
*// 버퍼 크기를 초과하여 메모리 오류 발생!// 안전한 대안: snprintf 사용*
char safe_buffer[10];
snprintf(safe_buffer, sizeof(safe_buffer), "This is a very long string");
*// 버퍼 크기만큼만 저장되고 나머지는 잘림*
C++에서는 더 안전하고 편리한 방법들이 있습니다: