본문 바로가기
2학년 2학기/c언어

12-7장 이진 파일의 생성과 fread, fwrite

by kkkkk1023 2024. 11. 18.

 

 

 

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;
}