int sprintf(char* str, const char* format, ···)
매개변수(인자)
char* str = format을 복사해서 집어넣을 곳
const char* format = 서식지정자가 포함된 문자열
반환값(리턴값)
int = 성공한 문자의 개수
(실패 시 -1을 반환)
설명
* printf() 함수가 화면에 출력한다면 sprintf()는 char* str에 복사 대입한다.
* 배열의 크기를 넘어서면 buffer overflow가 발생할 수 있다.
예제
int main()
{
int age = 20;
char name[] = "전준영";
char str[40] = "";
sprintf(str, "%s의 나이는 %d이다.", name, age);
printf("%s", str);
return 0;
}
int fprintf(FILE* stream, const char* format, ···)
매개변수(인자)
FILE* stream = format을 복사해서 집어넣을 곳 (파일 포인터)
const char* format = 서식지정자가 포함된 문자열
반환값(리턴값)
int = 성공한 문자의 개수
(실패 시 -1을 반환)
설명
* printf() 함수가 화면에 출력한다면 fprintf()는 파일에 복사 대입한다.
주의!
파일에 바로 쓰인다기보단 buffer에 들어간다고 생각해야 옳다.
fprintf 함수를 사용하고 바로 파일을 사용한다고 해도 복사가 안되있을 수 있다.
fflush 함수를 사용하여 버퍼를 비우고 사용하는 것이 확실하다.
예제
int main()
{
int age = 20;
char name[] = "전준영";
FILE* stream = fopen("introduce.txt", "w");
fprintf(stream, "%s의 나이는 %d이다.", name, age);
fflush(stream);
return 0;
}
귀여운 그림은 쭐어님이 그리셨습니다.
반응형
'C' 카테고리의 다른 글
fgets 함수 (0) | 2020.12.20 |
---|---|
fwrite() 함수 (0) | 2020.12.20 |
EOF와 fclose() 함수 (0) | 2020.11.14 |
FILE* fopen(const char* file, const char* filemode) (0) | 2020.11.09 |
#include <errno.h> (0) | 2020.11.09 |