fread, fwrite, fseek, ftell, rewind函数的使用, 空洞文件的建立

1. fread();   fwrite(); --------------------------- #include <stdio.h>

fread() 从文件中读取,放入ptr;fwrite()从ptr读取,写入文件中

按对象读写:

当剩下的字节不够单个元素的大小时,fread,fwrite不对剩下的进行读取

先写再读(fread之后才能printf),存在文件偏移量,可先关闭文件再打开(方法一)

2. rewind();----------------------------------------------------------------

rewind 设置文件偏移量到开头(方法二)

rewind(fp);

3. ftell ()当前位置偏移量-----------

4. fseek();--------------------------------------------

fseek后,进行getchar(), 相当于又往后偏了1

创空洞文件,进行拷贝

目标文件要用 “w” 进行截断,先定位源文件末尾,用ftell获得总偏移量,目标文件再偏移(总量-1)个大小,最后一个偏移量的位置写入‘\0’,(光偏移不写入数据,则文件大小无变化)这样就创建好了相等大小的空洞文件。然后用rewind 使两个文件的光标回到开头,进行拷贝

----------------------------------------------------------------------------------

当用fread输出字符串(用printf  %s)时,要留最后一个位置给 ‘\0’ (改两个地方,元素个数-1和 a[ret] = '\0')

char a[50] = {0};

当用fwrite输出时,不能把一次写入的元素个数定死了,否则会剩余字节写不到,要用有效字符个数ret

---------------------------------------------------------------------------------

用fread,fwrite实现文件拷贝

文件拷贝不需要用printf输出字符串,所以不用 ‘\0’, fread不

总结:

fread/fwrite

      成功返回读写的元素个数      |        失败返回0

fseek

      成功返回0                             |        失败返回-1 & errno

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值