专栏首页C语言入门到精通10.4 随机读写数据文件

10.4 随机读写数据文件

01

文件位置标记及其定位

1、随机访问不是按数据在文件中的物理位置次序进行读写,而是可以对任何位置上的数据进行访问。

2、文件位置标记

为了对读写进行控制,系统为每个文件设置了一个文件读写位置标记(简称文件位置标记或文件标记),用来指示“接下来要读写的下一个字符的位置”。

3、一般情况下,在对字符文件进行顺序读写时,文件位置标记指向文件开头,这时如果对文件进行读的操作,就读第1个字符,然后文件位置标记向后移一个位置,在下一次执行读的操作时,就将位置标记所指向的第2个字符读入。

4、如果是顺序写文件,则每写完一个数据后,文件位置标记顺序向后移一个位置,然后在下一次执行写操作时把数据写入指针所指的位置。

5、对流式文件既可以进行顺序读写,也可以进行随机读写。关键在于控制文件的位置标记。

6、文件位置标记的定位

可以强制使文件位置标记指向人们指定的位置。

(1)用rewind函数使文件位置标记指向文件开头。

rewind函数的作用是使文件位置标记重新返回文件的开头,此函数没有返回值。

(2)用fseek函数改变文件位置标记

调用形式:fseek(文件类型指针,位移量,起始点)

起始点用0、1或2代替,0代表文件开始位置,1为当前位置,2为文件末尾位置。位移量指以起始点为基点,向前移动的字节数。位移量应是long型数据。

(3)用ftell函数测定文件位置标记的当前位置

ftell函数的作用是得到流式文件中文件位置标记的当前位置。

02

随机读写

1、需要注意的是应当保证在磁盘中存在所指定的文件“stu.dat”。

有时候,正是那些意想不到之人,成就了无人能成之事。

——图灵

文字/闫小林

图片/源于网络

- END -

本文分享自微信公众号 - C语言入门到精通(gh_780327809188),作者:闫小林

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-01-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 9.3 文件的读写

    系统为每一个文件设置了一个文件读写位置标记,用来指示“接下来要读写的下一个字符的 位置”

    闫小林
  • 10.1 C文件有关的基本知识

    (1)程序文件。包括源程序文件(后缀为.c)、目标文件(后缀为.obj)、可执行文件(后缀为.exe)等。这种文件的内容时程序代码。

    闫小林
  • 9.1 文件基础

    (1)程序文件,包括源程序文件(后缀.c)、目标文件(后缀.obj)、可执行文件(后 缀.exe)

    闫小林
  • 9.3 文件的读写

    系统为每一个文件设置了一个文件读写位置标记,用来指示“接下来要读写的下一个字符的 位置”

    闫小林
  • 函数 | Python内置函数详解—IO操作类

    Python内置的函数及其用法。为了方便记忆,已经有很多开发者将这些内置函数进行了如下分类:

    潘永斌
  • Spring Boot 上传文件出错:java.io.IOException: The temporary upload location

    1.Springboot的应用服务在启动的时候,会生成在操作系统的/tmp目录下生成一个Tomcat.*的文件目录,用于"java.io.tmpdir"文件流操...

    王念博客
  • Git的三个工作区和文件的三种状态

    我们在使用Git的时候一般有3个工作区的概念:Git 仓库、工作目录以及暂存区域。其中工作目录比较好理解,就是我们开发时修改文件的那些目录,Git 仓库就是我们...

    AntDream
  • Git的三个工作区和文件的三种状态

    我们在使用Git的时候一般有3个工作区的概念:Git 仓库、工作目录以及暂存区域。其中工作目录比较好理解,就是我们开发时修改文件的那些目录,Git 仓库就是我们...

    AntDream
  • Linux文件操作高频使用命令

    more命令一次显示一屏信息,若信息未显示完屏幕底部将出现“-More-(xx%)”。

    天下科技
  • 让你的操作效率提高百倍的——Listary Pro

    课代表

扫码关注云+社区

领取腾讯云代金券