文件操作之fread()和fwrite()函数

来源:互联网 发布:阿里云授权服务中心 编辑:程序博客网 时间:2024/04/27 11:42
size_t  fwrite( const void *buffer, size_t size, size_t count, FILE *stream );buffer-指向要写数据的存储位置size-目标所占字节数count-写目标的最大数量,即写入多少个size大小的数据stream-文件结构指针

举例:

定义一个结构体

struct student{int      nID; //学号char     chName[20];    //姓名float    fScores[2];    //2门课的成绩};
 void main() { int i=0; FILE *fp; struct student tStu[3]={{1,"jx",99,100},                         {2, "slkd",89, 90},                         {3, "sldd", 100, 78}};//结构体数组 if((fp = fopen("F:\\1.txt", "wb")) == 0)  {  printf("func fopen() err!\n");  return;  }  for(i=0; i<3; i++)  {  if(fwrite(&tStu[i],sizeof(struct student),1,fp)!=1)  {  printf("func fwrite() err !\n");  return;  }  }    fclose(fp);  }
以上代码在F盘写入二进制数据

下面用fread()函数读出:

size_t  fread( void *buffer, size_t size, size_t count, FILE *stream );buffer-指向数据的存储位置size-目标所占字节数count-读取目标的最大数量,即读取多少个size大小的数据stream-文件结构指针
void main(){FILE *pRead;struct student tStu[4];//结构体数组struct student *ptStu = NULL;int nCount = 0;//打开文件 用于读取pRead=fopen("F:/1.txt","rb");if(NULL == pRead){printf("func fopen() err ! \n");return;}//一条条的读取ptStu = tStu;nCount = fread(ptStu,sizeof(struct student),1,pRead);while(nCount>0){printf("%d %s %.1f %.1f\n",ptStu->nID,ptStu->chName,ptStu->fScores[0],ptStu->fScores[1]);ptStu++;nCount = fread(ptStu,sizeof(struct student),1,pRead);}fclose(pRead);}
结果如下:





0 0
原创粉丝点击