文件的随机读写

与文件的顺序读写不同,文件的随机读写是指可以从文件的任意位置开始读写数据

fseek函数

函数的返回值以及参数格式:

该函数的作用是将文件指针移动到指定的位置,从该位置开始读写。包含三个参数,第一个参数为文件指针,第二个参数为文件指针的偏移量,第三个参数为文件指针的起始位置。如果成功,则该函数返回值为0,否则,返回非0值。

光标的起始位置可以选择如下三种:

第一种是在文件开头开始移动,第二种是在当前位置开始移动,第三种是在文件末尾开始移动。

fseek函数的具体使用方法如下:

可以看到,刚开始读取时,读到文件中第一个字符a,随后文件指针向后移动,再次读取,读到第二个字符b,接下来使用fseek函数,将文件指针移动到距离文件开头为0的位置处,即移动到文件开头,再次进行读取,读取出来的字符还是a。

输出结果为:

ftell函数

函数的返回值以及参数格式:

ftell函数的作用是得到当前文件指针与文件开头的距离,只有一个参数,即文件指针,返回值为当前文件指针的位置。

ftell函数的具体使用方法如下:

可以看到,在文件读取完第一个字符a后,使用fseek函数使文件指针移动到距离文件末尾-3的位置处,即将文件指针移动到倒数第三个字符处,得到倒数第三个字符,随后又使用ftell函数求出文件指针与文件开头的距离。

输出结果为:

rewind函数

函数的返回值以及参数格式:

rewind函数的作用是将文件指针移动到文件的起始位置。该函数的参数为文件指针,无返回值。

rewind函数的具体使用方法如下:

可以看到,我们得到文件中第一个字符后,将文件指针移动到距离文件末尾-3的位置处,继续打印一个字符,接下来使用rewind函数将文件指针移动到文件的起始位置,再次打印一个字符。

输出结果为:

注:rewind(fp)与fseek(fp,0,SEEK_SET)作用相同。

feof函数的作用

feof 的作⽤是:当⽂件读取结束的时候,判断是读取结束的原因是否是:遇到⽂件尾结束

函数的返回值和参数格式如下:

该函数的参数为一个文件指针,如果正常遇到文件末尾结束,返回非0值,否则,返回0。

feof函数具体使用方法如下:

输出结果为:

注意:在⽂件读取过程中,不能⽤feof函数的返回值直接来判断⽂件的是否结束

ferror函数的作用

函数返回值和参数格式如下:

该函数的参数是一个文件指针,若在文件读写过程中遇到文件错误,返回非0值,否则,返回0。

ferror函数的具体使用方法如下:

输出结果为:

可以看到,文件正常读取结束,没有碰到文件错误,那么碰到文件错误是什么样的呢?

接下来我们手动让文件读写发生错误,来看看会输出什么错误信息。

输出结果为:

可以看到,输出结果为文件描述错误,就是指我们在读写文件过程中发生错误。

feof函数和ferror函数作用总结:

总的来说,就是文件结束的原因有两个:

  • 一是遇到文件末尾,正常结束,
  • 一是文件在读写过程中发生错误,非正常结束。

feof函数就是用来判断文件是否是遇到末尾结束的,如果正常遇到文件末尾结束,返回非0,否则返回0。

ferror函数是用来判断文件是否发生错误结束的,如果发生错误导致文件结束,返回非0,否则返回0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值