c语言fwrite函数结构体,fwrite函数的一般调用形式是什么?

fwrite函数的一般调用形式是“fwrite(buffer,size,count,fp);”;其中,buffer是准备输出的数据块的起始地址,size是每个数据块的字节数,count用来指定每写一次或输出的数据块,fp为文件指针。

5e33893989981db49cbd2e5391234f17.png

fwrite() 是C 语言标准库中的一个文件处理函数,功能是向指定的文件中写入若干数据块,如成功执行则返回实际写入的数据块数目。该函数以二进制形式对文件进行操作,不局限于文本文件。

语法:fwrite(buffer,size,count,fp)

参数:buffer是准备输出的数据块的起始地址

size是每个数据块的字节数

count用来指定每写一次或输出的数据块

fp为文件指针。

函数返回写入数据的个数。

注意

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

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

读写常用类型

(1)写int数据到文件#include

#include

int main ()

{

FILE * pFile;

int buffer[] = {1, 2, 3, 4};

if((pFile = fopen ("myfile.txt", "wb"))==NULL)

{

printf("cant open the file");

exit(0);

}

//可以写多个连续的数据(这里一次写4个)

fwrite (buffer , sizeof(int), 4, pFile);

fclose (pFile);

return 0;

}

(2)读取int数据#include

#include

int main () {

FILE * fp;

int buffer[4];

if((fp=fopen("myfile.txt","rb"))==NULL)

{

printf("cant open the file");

exit(0);

}

if(fread(buffer,sizeof(int),4,fp)!=4) //可以一次读取

{

printf("file read error

");

exit(0);

}

for(int i=0;i<4;i++)

printf("%d

",buffer[i]);

return 0;

}

执行结果:

25a9ab0284caf9fc584991b4c1a680a5.png

5.读写结构体数据

(1)写结构体数据到文件#include

#include

#include

typedef struct{

int age;

char name[30];

}people;

int main ()

{

FILE * pFile;

int i;

people per[3];

per[0].age=20;strcpy(per[0].name,"li");

per[1].age=18;strcpy(per[1].name,"wang");

per[2].age=21;strcpy(per[2].name,"zhang");

if((pFile = fopen ("myfile.txt", "wb"))==NULL)

{

printf("cant open the file");

exit(0);

}

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

{

if(fwrite(&per[i],sizeof(people),1,pFile)!=1)

printf("file write error

");

}

fclose (pFile);

return 0;

}

(2)读结构体数据#include

#include

#include

typedef struct{

int age;

char name[30];

}people;

int main () {

FILE * fp;

people per;

if((fp=fopen("myfile.txt","rb"))==NULL)

{

printf("cant open the file");

exit(0);

}

while(fread(&per,sizeof(people),1,fp)==1) //如果读到数据,就显示;否则退出

{

printf("%d %s

",per.age,per.name);

}

return 0;

}

执行结果:

d6a9a05846ecc609306062bf4643aa96.png

相关推荐:c语言教程视频

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值