c语言文件操作管理(下)

本文介绍了文件的随机读写,重点讲解了fseek、ftell和rewind函数的使用。fseek通过指定偏移量和位置来定位文件指针,ftell返回文件指针的当前位置,而rewind将文件指针重置到文件开始。此外,还提到了文本文件和二进制文件的区别,以及文件缓冲区的概念和fflush、fclose在刷新缓存区中的作用。
摘要由CSDN通过智能技术生成

文件操作管理(上)讲完了文件的顺序读写,那么现在我们来学一学文件的随机读写。

文件的随机读写:

 要学会这一知识点,这三个函数必不可少。它们是:fseek、ftell、rewind。

fseek函数是通过指针的位置和偏移量来定位文件指针。它的声明如下:

int fseek ( FILE * stream, long int offset, int origin );

第一个参数是流,第二个参数是偏移量,第三个参数是当前的位置。现在我在test.txt文本文件中写入abcdef。如果想要直接读取文件中的c字符,我们就可以使用fseek函数。

SEEK_CUR ->当前位置

SEEK_END->文件的末尾                    SEEK_SET->文件的开始

这段代码是从文件的开头进行读取数据,当fget读取到一个字符后会跳转到下一个字符(文件指针向后移动一位) 。

ftell:返回文件指针相对于起始位置的偏移量。

long int ftell ( FILE * stream );

函数使用方式如下:

重置文件指针使它回到初始位置,可以使用rewind

void rewind ( FILE * stream );

 文本文件和二进制文件:

根据数据的组织形式,数据文件被称为文本文件或者二进制文件。 数据在内存中以二进制的形式存储,如果不加转换的输出到外存,就是二进制文件。 如果要求在外存上以ASCII码的形式存储,则需要在存储前转换。以ASCII字符的形式存储的文件就是文 本文件。

它们存储形式的区别就是:列如数字10000,一个是二进制存在内存中,一个是字符形式存放。

 

文件缓冲区: 

 在写文件的时候,操作系统不会把输出的数据直接放在硬盘中,而是先存到输出缓存区。等到数据积攒到一定的数量后再从输出缓存区放到硬盘中去。(同理读文件)

有一个函数ffflush可以用来刷新缓存区,是缓存区的数据进入相应的空间。fclose函数也可以实现缓存区的刷新,使数据不会遗漏在缓存区中,防止数据的流失,可见fclose关闭文件的重要性!

讲到这文件管理就全部结束了,希望大家多多支持!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值