바이너리 파일fread, fwrite 함수에 대한 읽기와 쓰기 분류: C 언어 학습...
언어: C 언어
시간: 2015년 3월 10일
기능: 바이너리 파일의 읽기와 쓰기 실례를 실현
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#define FILENAME "d:/studentInfo"
#define COUNT 5
typedef struct
{
char name[10];
short Math;
short Chinese;
short WenZong;
}Student;
//
int ReadInfo();
//
int WriteInfo(Student *stu,int count);
//
int InitInfo(Student *stu,int count);
int main(void)
{
int resWrite = 0,resRead=0;
Student stu[COUNT];
InitInfo(stu, COUNT);
resWrite = WriteInfo(stu, COUNT);
if (0 == resWrite)
printf("
");
else
printf("
");
ReadInfo();
system("pause");
return 0;
}
//
int InitInfo(Student *stu, int count)
{
int res = 0;
if (NULL == stu || count < 0)
{
res = -1;
return res;
}
for (size_t i = 0; i < count; i++)
{
sprintf((stu+i)->name,"LSX%d",i);
(stu + i)->Math = i * 5 + 100;
(stu + i)->Chinese = i * 5 + 80;
(stu + i)->WenZong = i * 5 + 200;
}
return res;
}
//
int ReadInfo()
{
int res = 0,res2=0;
FILE*fp = NULL;
Student stu[1];
fp = fopen(FILENAME,"rb"); // , ,
if (NULL == fp)
{
res = -1;
return res;
}
while (!feof(fp))
{
res2= fread(stu,sizeof(Student),1,fp); //fread , ,
if (1 == res2)
{
printf("%s %10d %10d %10d",stu->name,stu->Math,stu->Chinese,stu->WenZong);
}
printf("
");
}
if (NULL != fp)
fclose(fp);
return res;
}
//
int WriteInfo(Student * stu,int count)
{
int res = 0,res2=0;
FILE*fp = NULL;
if (NULL == stu || count<0)
{
res = -1;
return res;
}
fp = fopen("d:/studentInfo", "wb"); // ,
if (NULL == fp)
{
res = -1;
return res;
}
for (size_t i = 0; i < count; i++)
{
res2 = fwrite(stu + i, sizeof(Student), 1, fp);// fwrite , ,
if (1 != res2)
{
res = -1;
return res;
}
}
if (NULL != fp) //
fclose(fp);
return res;
}
판권 성명: 본고는 블로거의 오리지널 문장으로 블로거의 허락 없이 전재할 수 없습니다.
전재 대상:https://www.cnblogs.com/L-Lune/p/4671284.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.