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\n",stu_temp->name,stu_temp->age);
stu_temp++;
}
return(0);
}