C语言 文件操作(五)

(1)size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );

其中,ptr:指向保存结果的指针;size:每个数据类型的大小;count:数据的个数;stream:文件指针函数返回读取数据的个数。

(2)size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );其中,ptr:指向保存数据的指针;size:每个数据类型的大小;count:数据的个数;stream:文件指针函数返回写入数据的个数。

注意

(1)写操作fwrite()后必须关闭流fclose()。

(2)不关闭流的情况下,每次读或写数据后,文件指针都会指向下一个待写或者读数据位置的指针。

(3)fwrite 和 fread 可以对任何数据类型进行读取,包括int,double,float,char.......但是,一般用来完成对结构体的读写

#include <stdio.h>
#include <stdlib.h>

typedef struct student{
    char name[20];
    int age;
}STU;

int main()
{
   
    FILE *fp;
    fp = fopen("f:\lanyue.bin","wb");
       
       STU stu_1 = {"小明",20};
       STU stu_2 = {"小丽",18};
       STU stu[2] = {stu_1,stu_2};
       
       fwrite(stu,sizeof(STU),2,fp);
       fclose(fp);
       
       STU *stu_temp = (STU*)malloc(sizeof(STU) * 2);
       fp = fopen("f:\lanyue.bin","rb");
       fread(stu_temp,sizeof(STU),2,fp);
       
       while(stu_temp->age){
           
           printf("%s %d ",stu_temp->name,stu_temp->age);
           stu_temp++;
    }
       
       return(0);
}

原文地址:https://www.cnblogs.com/viplanyue/p/12700558.html