반응형
#이진파일 #구조체 #저장 #읽기 #person #struct #fread #fwrite
구조체를 이진 파일에 저장하고 읽어오는 C언어 코드입니다.
#define _CRT_SECURE_NO_WARNINGS // Visual Studio
#include <stdio.h>
#include <stdlib.h>
#define N 4
typedef struct {
char name[10];
int age;
} person;
int main()
{
FILE* fp;
person list[N] = {
{ "홍길동", 20 },
{ "이순신", 30 },
{ "정재욱", 40 },
{ "빌게이츠", 50}
};
fp = fopen("person.dat", "wb");
if (fp == NULL)
{
printf("저장 오류\n.");
exit(1);
}
fwrite(list, sizeof(person), N, fp);
fclose(fp);
printf("person.dat에 저장했습니다.\n\n");
return 0;
}
저장된 파일을 메모장으로 불러 보겠습니다.
프로그램에서 저장된 이진 파일을 읽어 보겠습니다.
#define _CRT_SECURE_NO_WARNINGS // Visual Studio
#include <stdio.h>
#include <stdlib.h>
#define N 4
typedef struct {
char name[10];
int age;
} person;
int main()
{
FILE* fp;
int i;
person list[N];
fp = fopen("person.dat", "rb");
if (fp == NULL)
{
printf("파일이 없습니다 !\n");
exit(1);
}
if(fread(list, sizeof(person), N, fp) != N)
{
printf("File read Error !\n");
exit(1);
}
printf("이름 나이\n");
for (i = 0; i < N; i++)
printf("%-10s %d\n", list[i].name, list[i].age);
fclose(fp);
return 0;
}
반응형
'C_C++' 카테고리의 다른 글
(C언어) 성적 데이터 파일 읽기 fscanf, fscanf_s (0) | 2022.11.23 |
---|---|
(C++) 성적 데이터 파일 읽기 ifstream (0) | 2022.11.23 |
(C언어) 문자열 뒤집기 (0) | 2022.11.22 |
(C언어) 문자열에서 모든 공백을 삭제하는 함수 ★★ (0) | 2022.11.22 |
(C언어) 입력 버퍼 비우기: rewind fflush (0) | 2022.11.20 |