fread()和fwrite()使用。

我们来看fread()和fwrite()函数都接受四个参数。

fread读取nmwmb个对象,每个对象size大小。从stream读取到ptr中。fwrite()也类似。从ptr中读取数据到stream中,读取nmemb个对象每个对象size大小。但是fwrite()的ptr只拥有读的权限。

如果读写成功,则返回读写对象个数。

如果一个文件有很多字符

fread(fps,1,10,fpd);

fread(fps,10,1,fpd);

两个函数内容都是读取10个字符。前者返回成功对象10,后者返回成功对象1。

当一个文件只有5个字符时。

fread(fps,1,10,fpd);

fread(fps,10,1,fpd);

前者返回成功对象5,而后者返回0.后者对象需满足10大小,最大的大小只有5。所以没有成功对象。所以当不知道文件字符大小时,建议使用多对象,单字符的输入读写方式。

使用示例

#include<stdio.h>
#include<stdlib.h>
#define BUFSIZE 1024
int main(int argc,char argv)
{
FILE* fps,*fpd;
char buf[BUFSIZE];
int n;
if(argc<3)
{
fprintf(stderr,"Usage: %s<src_file>,<des_file>\n");
exit(1);
}
fps=fopen(argv[1],"r");
if(fps==NULL)
{
perror("fopen()");
exit(1);
}
fpd=fopen(argv[2],"w");
if(fpd==NULL)
{
 fclose(fps);//防止内存泄漏
 perror("fopen()");
 exit(1);
while(1)
{
if(n=fread(buf,1,BUFSIZE,fps)>0)
  fwrite(buf,1,n,fpd);
 
fclose(fps);
fclose(fpd);
}
}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值