c语言fopen打不开文件_第三十三章c语言对文件的自由存取

上一章我们简单了解了fopen文件的打开,但是在fopen里我们看到想对文件进行操作其实很死板,要么从头开始要么就是在尾部追加,那么在C语言中有没有对文件的自由一点的操作呢,其实是有的,这一章我们就来了解两个函数,fseek和ftell

我们先来看一下fseek函数的原型:int fseek (FILE *__stream, long int __off, int __whence);

我们看fseek有三个参数:

第一个参数是一个指向文件的FILE指针,也就是用fopen打开的文件;

第二个参数为偏移量,表示从起始位置开始要移动的距离,也就是你想在文件的那个位置进行操作,那么就是从文件的指针位置到你需要操作的位置的字节数,这个是类型是long,可以是正值也可以负值,负值就是从尾部数上来;

第三个参数是模式,用来标识起始点;

然后看下它的返回值,它的返回值是int类型,如果成功则是0,如果失败则是-1;

我们来看下文件的起始点模式有哪些:

c6a05c9d9872a56035a2e8c810c01b20.png

那我们在来看一下ftell函数,ftell函数的原型是这样的long int ftell (FILE *__stream);

这个函数就是得到文件指针当前的位置,它返回的是long类型,因为long的取值范围是-2147483648~2147483647,所以不能超过2.1G文件进行操作。

我们来看一下例子:

我们先来看下没有使用fseek的时候:

2ab91bde5b86c07f5c516e5778f489e7.png

接着我们来看下,把那个注释部分去掉:

7c07ee73a7bc7074b8298aad54b8bd19.png

现在大家应该对这两个函数有所理解了吧。

注意:这里有一个地方需要注意这两个函数都是需要确保文件已经打开的时候才能时候,如果文件没有打开,那么就会出先错误

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值