首页 > 生活

文件读写函数——fwrite和fread

更新时间:2025-05-17 09:38:04 阅读: 评论:0

1.fread函数

fread函数的使用格式如下:

fread(buffer, size, count, fp);

其中:

buffer是存放数据的存储空视频压缩标准间的起始地址;

size是数据块的大小(字华尔街英语节数);

count是读多少个块;

fp是文件类型指针。

fread函数的功能是:

从fp所指向的文件中读取数据块,读取的字节数为size*count,读取来的数据存放在buffer为起始地址的内存中。若fread函数的返回值等于count,则执行本函数读取数据成功;若文件结束或发生错误,返回值等于0。

例如,若已知有“int a[10];”,则下面语句:

fread(a, sizeof(int), 10, fp);

从fp所指向的文件中读取2*10个字节(即10个整数)存放于数组a中。

2.fwrite函数

fwrite函数的使用格式如下:

fwrite(buffer, size, count, fp);

其中四个参数的含义与fread函数基本相同,只不过现在是将内存中从buffer地址开始的数据往fp所指向的文件里写。

fwrite函问到数的的功能是:将内存中从buffer地址开始的数据往fp所指向的文件里写,写入到文件里的字节数为size*count。

例如,下面语句:

int b[6]={1,3,5,7,9,11};

fwrite(b, sizeof(int), 6, fp);

将内存中b数组的6个元素值(2*6个字节)写入fp所指向的文件里。

举例1:每次读写一个结构体类型数组元素

#include <stdio.h>

#include <stdlib.h>

typedef 中国上市企业 struct stu{

c蝙蝠侠阿卡姆之城har name[20];

int num;

int age;

} S;

int main()

{

S stu1[3],stu2[3],*p;

FILE 骐达怎么样 *fp;

int i;

printf("input data:\n");

for(i=0;i<3;i++)

{

printf("姓名:");scanf("%s",stu1[i].name);

printf("学号/年龄:");scanf("%d%d",&stu1[i].num,&stu1[i].age);

}

//把数组中元素的值写到磁盘文件

fp = fopen("D:\\file3.dat","wb+") ;

if(p == NULL) {

printf("文件不能打开!\n");exit(0);

}

else {

for(i=0;i<3;i+五路财神图片+) {

if(fwrite(&stu1[i],sizeof(struct stu),1,fp)!=1)

printf("不能写入,出错!\n");

else

printf("成功写入一个元素!\n");

} }

// p = stu2;

//从文件读入数据!

rewind(fp); //返回文件头

for(i=0;i<3;i++) {

if(fread(&stu2[i],sizeof(struct stu),1,fp)!=1)

printf("不能从文件读入!\n");

}

//输出

for(i=0;i<婚戒定制3;i++) {

printf("姓名:%s\t学号:%d\t年龄:%d\n",stu2[i].name,stu2[i].num,stu2[i].age);

}

fclose(fp)锂离子电池正极材料;

return 0;

}

第二种方法:

#include <stdio.h>

#include <stdlib.h>

typedef struc潘世勋t stu

{

char name[20];

int 华尼托精神num;

int age;

} S;

int main()

{

S stu1[3],欧珀莱眼霜stu2[3],*p;

FILE *fp;

int i;

printf("input youtube视频data:\n");

for(i=0;i<伊朗语3;i++)

{

printf("姓名:");scanf("%s",stu1[i].name);

printf("学号/年龄:");scanf("%d%d",&stu1[i].num,&stu1[i].age);

}

//把数组中元素的值写到磁盘文件

fp = fopen("D:\\file3.dat","wb+") ;

if(p == NULL)

百度搜索量{

printf("文件不能打开!\n");exit(0);

}

else

{

for(i=0;i<3;i++)

{

if(fwrite(&stu1[i],sizeof(strum2mct 重庆现状stu),1,fp)!=1)

printf("不能写入,出错!\n");

else

printf("成功写入一个元素!\n");

}

}

// p = stu2;

//从文件读入数据!

rewind(fp); //返回文件头

for(i=0;i<3;i++)

{

if(fread(&stu2[i],sizeof(struct stu),1,fp)!=1)

printf("不能从文件读入!\n");

else

printf("姓名:%s\t学号:%d\t年龄:%d\n",stu2[i].name,stu2[i].num,stu2[i].age);

}

//输出

/*for(i=0;i<3;i++)

{

printf("姓名:%s\t学号:%d\t年龄:%d\n",stu2[i].name,stu2[i].num,stu2[i].age);

}

*/

fclose(fp);

return 0;

}

第二种方法:整体写入或整体读入。

#include <stdio.h>

#include <stdlib.h>

typedef struct stu

{

char name[20];

int num;

int age;

} S;

int main()

{

S stu1[3],stu2[3],*p;

FILE *fp;

int i;

printf("input data:\n");

for(i=0;i<3;i++)

{

printf("姓名:");scanf("%s",stu1[i].name);

printf("学号/年龄:");scanf("%d%d",&stu1[i].num,&stu1[i].ag绿松石价格e);

}

//把数组中元素的值写到磁盘文件

fp = fopen("D:\\file3.dat","wb+") ;

if(p == NULL)

{

printf("文件不能打开!\n");exit(0);

}

else

{

if(fwrite(&stu1[0],sizeof(st哥德巴赫猜想ruct stu),3,fp)!=3)

printf("不能写入,出错!\n");

else

printf("成功写入!\n");

}

rewind(fp); //返回文件头

//P =stu2;

if(fread(stu2,sizeof(struct stu),3,fp)!=3)

printf("不能从文件读被代表入!\n");

else

printf("成功读入数据!\n");

for(i=0;i<3;i++)

{

printf("姓名:%s\t学号:%d\t年龄:%d\n",stu2[i].name,stu2[i].num,stu2[i].age);

}

fclose(fp);

return 0;

}

本文发布于:2023-05-27 13:43:05,感谢您对本站的认可!

本文链接:http://www.ranqi119.com/ge/85/136511.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:函数   文件   fread   fwrite
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 站长QQ:55-9-10-26|友情:优美诗词|电脑我帮您|扬州装修|369文学|学编程|软件玩家|水木编程|编程频道