본문 바로가기

C-Language/Binary File

C언어 바이너리 파일 예제

fwrite() 함수를 이용하여 바이너리 모드로 구조체 배열에 포함된 문자배열과 숫자를 파일에 쓰고 다시 fread() 함수로 읽어서 모니터에 출력하는 예


#include <stdio.h>
struct s                             // 구조체 선언(키보드에서 입력된 이름과 번호를 저장함)
{
    char name[50];
    int num;
};
int main(){
    struct s a[5],b[5];              // 구조체 배열변수 2개 선언(a, b)
    FILE *fptr;
    int i;
    fptr=fopen("members.txt","wb");  // 바이너리 모드로 파일에 쓰기 위해 파일을 연다
    for(i=0;i<5;++i)
    {
        fflush(stdin);               
        printf("회원 이름 입력: ");
        gets(a[i].name);             // 키보드에서 입력된 이름을 구조체의 name 변수에 저장
        printf("회원 번호 입력: "); 
        scanf("%d",&a[i].num);       // 키보드에서 입력된 숫자를 구조체의 num 변수에 저장
    }
    fwrite(a,sizeof(a),1,fptr);      // 구조체에 저장된 5명의 회원정보를 파일에 저장
    fclose(fptr);
    fptr=fopen("members.txt","rb");  // 파일을 다시 바이너리 읽기 모드로 연다
    fread(b,sizeof(b),1,fptr);       // 파일에서 읽어서 구조체 배열에 저장
    for(i=0;i<5;++i)
    {
        printf("이름: %s\n번호: %d",b[i].name,b[i].num);  // 파일에서 읽어온 내용을 모니터에 출력
    }
    fclose(fptr);
}