2학년 2학기/c언어
12-7장 이진 파일의 생성과 fread, fwrite
kkkkk1023
2024. 11. 18. 15:27
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream)
: 메모리에서 지정된 주소(ptr)로부터 데이터를 읽어, 크기(size)와 개수(count)만큼 파일 스트림(열어놓은 파일)에 이진 형식으로 저장한다.
#include <stdio.h>
int main(void)
{
FILE* fp = NULL;
int a = 10;
fp = fopen("binary.bin", "rb"); //바이너리로 오픈
if (fp == NULL) {
fprintf(stderr, "원본 파일 apple.txt를 열 수 없습니다.\n");
exit(1);
}
fwrite(&a, sizeof(a), 1, fp);
fclose(fp);
return 0;
}
size_t fread(void *ptr, size_t size, size_t count, FILE *stream)
: 파일에서 지정된 크기(size)와 개수(count)만큼 데이터를 읽어 메모리의 지정된 주소(ptr)에 저장한다.
binary.bin
00000000 00000000 00000000 00001111
#include <stdio.h>
#include <stdlib.h> // exit 함수 사용을 위해 필요
int main(void)
{
FILE* fp = NULL;
int a = 0; // 파일에서 읽어올 값을 저장할 변수
fp = fopen("binary.bin", "rb"); // 바이너리 파일 읽기 모드로 열기
if (fp == NULL) {
fprintf(stderr, "파일 binary.bin을 열 수 없습니다.\n");
exit(1);
}
fread(&a, sizeof(a), 1, fp); // 파일에서 정수 1개를 읽어 변수 a에 저장
printf("파일에서 읽어온 값: %d\n", a); // 읽어온 값 출력
// 출력
// 파일에서 읽어온 값: 15
fclose(fp); // 파일 닫기
return 0;
}