写文件:
 size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
 功能:以数据块的方式给文件写入内容
 参数:
 :准备写入文件数据的地址ptr
 : 为 类型,此参数指定写入文件内容的块数据大小size size_t unsigned int
 :写入文件的块数,写入文件数据总大小为:nmemb size * nmemb
 :已经打开的文件指针stream
 返回值:
 成功:实际成功写入文件数据的块数目,此值和 相等nmemb
 失败:0
#include<stdio.h>
typedef struct student
{
	char name[20];
	int age;
	int score;
	char addr[50];
 } stu;
int main()
{
	FILE* fp=fopen("d:/c.txt","wb");//写入二进制文件 
	if(!fp) return -1;
	int a=5678;//写入一个数据 
	fwrite(&a,sizeof(int),1,fp);
	
	int arr[]={1,2,3,4,5,6,7,8,9,10};//写入一个数组 
	fwrite(&arr,sizeof(int),10,fp);
	
	stu ss[3]=
	{
		{"高欢",10,96,"北京海淀"},
		{"麻阳",12,98,"河南濮阳"},
		{"建国",11,87,"河北唐山"}
	};
	for(int i=0;i<3;i++)//写入一个结构体 
		fwrite(&ss[i],sizeof(stu),1,fp);
	fclose(fp);
	return -1; 
}
 
读文件:
 size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
 功能:以数据块的方式从文件中读取内容
 参数:
 :存放读取出来数据的内存空ptr 间
 : 为 类型,此参数指定读取文件内容的块数据大小size size_t unsigned int
 :读取文件的块数,读取文件数据总大小为:nmemb size * nmemb
 :已经打开的文件指针stream
 返回值:
 成功:实际成功读取到内容的块数,如果此值比 小,但大于 ,说明读到文件nmemb 0
 的结尾。
 失败:0
#include<stdio.h>
#include<stdlib.h>
typedef struct student
{
	char name[20];
	int age;
	int score;
	char addr[50];
 } stu;
int main()
{
	FILE* fp=fopen("d:/c.txt","rb");
	if(!fp) return -1;
	int value;
	fread(&value,sizeof(int),1,fp);//读出一个数据
	printf("%d\n",value);
	
	int arr[10]={0};
	fread(arr,sizeof(int),10,fp);
	for(int i=0;i<10;i++)//读出一个数组
		printf("%d\n",arr[i]);
	
	stu* ss=(stu*)malloc(sizeof(stu)*3);	
	for(int i=0;i<3;i++)//读出一个结构体 
	{
		fread(&ss[i],sizeof(stu),1,fp);
		printf("姓名:%s ",ss[i].name);
		printf("年龄:%d ",ss[i].age);
		printf("成绩:%d ",ss[i].score);
		printf("地址:%s\n",ss[i].addr);
	}
	free(ss);
	fclose(fp);
	return 0;
}
 



















