文件操作《5》块数据读写

来源:互联网 发布:python 召回率和准确率 编辑:程序博客网 时间:2024/05/17 02:16

头文件stdio.h中定义了两个用于文件块数据读写函数fread和fwrite


fread:读取文件中的数据

函数原型:size_t fread ( void *buffer, size_tsize, size_tcount, FILE *stream) ;

第一个参数:数据变量的地址

第二个参数:数据类型的大小

第三个参数:数据块的个数

第四个参数:文件指针


fwrite:将数据写入文件中

函数原型:size_t fread ( void *buffer, size_tsize, size_t count, FILE *stream) ;

第一个参数:数据块变量的地址

第二个参数:数据类型的大小

第三个参数:数据块的个数

第四个参数:文件指针


实例1:在D:\\1.txt中写入一个学生的成绩

#include <stdio.h>#include <stdlib.h>struct Student{char Name[10];//姓名int Age;//年龄int No;//学号float Chinese;//语文float Math;//数学float Einglish;//英语float Total;//总分float Ave;//平均分};void main(){FILE *fp;//文件结构指针fp = fopen("D:\\1.txt","w");if(NULL == fp){printf("文件打开失败!\n");}else{printf("文件打开成功!\n");struct Student st = {"小明",20,1001,85,87,88};//计算总分st.Total = st.Chinese + st.Math + st.Einglish;//计算平均分st.Ave = st.Total / 3;fwrite(&st,sizeof(struct Student),1,fp);fclose(fp);//关闭文件}system("pause");}


执行结果(因为有些数据解析不出,所以出现下面的情况)


实例2:读取D:\\1.txt中的学生信息

#include <stdio.h>#include <stdlib.h>struct Student{char Name[10];//姓名int Age;//年龄int No;//学号float Chinese;//语文float Math;//数学float Einglish;//英语float Total;//总分float Ave;//平均分};void main(){FILE *fp;//文件结构指针fp = fopen("D:\\1.txt","r");if(NULL == fp){printf("文件打开失败!\n");}else{printf("文件打开成功!\n");struct Student st;fread(&st,sizeof(struct Student),1,fp);/printf("%s %d %d %g %g %g %g %g\n",st.Name,st.Age,st.No,st.Chinese,st.Math,st.Einglish,st.Total,st.Ave);fclose(fp);//关闭文件}system("pause");}


执行结果:





0 0
原创粉丝点击