When writing to a file in C, there are several functions available, depending on the type of data and format you need to write. Below are some of the main options:
fprintf
Function:
fprintf
is used for writing formatted text, similar to printf
, but with an additional argument at the beginning—a FILE *
to specify the output file.
Example:
fprintf(filePointer, "Formatted output: %d\\\\n", number);
fputc
and fputs
Functions:
fputc
: Writes a single character to a file.
fputs
: Writes a string directly to a file without any format conversion.
Example:
fputc('A', filePointer); // Writes 'A'
fputs("Hello, World!", filePointer); // Writes "Hello, World!"
If you use fputs("%d")
, it will just write the string "%d" directly, without converting any value.
fwrite
Function:
Best used for writing non-textual (binary) data.
Prototype:
size_t fwrite(const void * ptr, size_t size, size_t nitems, FILE * stream);
Similar to fread
, but in reverse: data is read from the buffer pointed to by ptr
and written to the file.
Common Behavior:
Handling Write Failures:
Buffered Writing:
C에서 파일에 데이터를 쓸 때 여러 함수들이 사용될 수 있으며, 작성하려는 데이터 유형과 포맷에 따라 선택할 수 있습니다. 다음은 주요 함수들입니다:
fprintf
함수:
fprintf
는 서식화된 텍스트를 파일에 쓰기 위해 사용되며, printf
와 유사하지만 추가적으로 파일을 지정하는 FILE *
인수가 첫 번째로 전달됩니다.
예시:
fprintf(filePointer, "서식화된 출력: %d\\\\n", number);
fputc
및 fputs
함수:
fputc
: 파일에 한 글자를 씁니다.
fputs
: 포맷 변환 없이 문자열을 그대로 파일에 씁니다.
예시:
fputc('A', filePointer); // 'A'를 씁니다.
fputs("Hello, World!", filePointer); // "Hello, World!"를 씁니다.
만약 fputs("%d")
를 사용하면, 값 변환 없이 "%d"라는 문자열을 그대로 쓰게 됩니다.
fwrite
함수:
바이너리 데이터와 같은 비텍스트 데이터를 쓰기에 적합합니다.
프로토타입:
size_t fwrite(const void * ptr, size_t size, size_t nitems, FILE * stream);
fread
와 유사하지만 반대로 동작하며, ptr
이 가리키는 버퍼의 데이터를 파일에 씁니다.
공통 동작:
쓰기 실패 처리: