C언어/디딤돌 C언어 예제

[C언어 소스] 회원 구조체 배열을 파일에 쓰기 및 읽기 테스트

언제나휴일 2016. 12. 4. 00:45
반응형

[C언어 소스] 회원 구조체 배열을 파일에 쓰기 및 읽기 테스트


Program.c



#include <stdio.h>
#define FNAME   "data.txt"
#define MAX_MEMBER    4
#define MAX_NAME_LEN 20
typedef struct _Member Member;
struct _Member
{
   
char name[MAX_NAME_LEN+1];
   
int num;
};
 
Member src[MAX_MEMBER]=
{
    {
"홍길동",1},{"강감찬",4},{"을지문덕",2},{"김구",3}
};
 
Member dest[MAX_MEMBER];
void Save();//src 회원 정보 파일에 쓰기
void Load();//파일에 회원 정보를 dest 읽기
void List();//dest 내용 출력
int main()
{
    Save();
    Load();
    List();
   
return 0;
}
 
void Save()
{
    FILE *fp = 0;
    fopen_s(&fp, FNAME,
"w");
 
   
if(fp)
    {
        fwrite(src,
sizeof(Member),MAX_MEMBER,fp);
        fclose(fp);
    }
   
else
    {
        printf(
"데이터 저장 실패\n");
    }
}
 
void Load()
{
    FILE *fp = 0;
    fopen_s(&fp, FNAME,
"r");
   
if(fp)
    {
        fread(dest,
sizeof(Member),MAX_MEMBER,fp);
        fclose(fp);
    }
   
else
    {
        printf(
"처음으로 회원 관리 프로그램을 사용을 환영합니다.\n");
    }
}
 

void List()
{
   
int i = 0;
   
for(i=0;i<MAX_MEMBER; i++)
    {
        printf(
"이름:%s 번호:%d\n",dest[i].name,dest[i].num);
    }
}



실행 결과

이름:홍길동 번호:1
이름:강감찬 번호:4
이름:을지문덕 번호:2
이름:김구 번호:3



본문

[디딤돌 C언어] 97. 바이너리로 파일 입출력





반응형