企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] # 文件的随机读写fseek 实现随机读写的关键是要按要求移动位置指针,这称为文件的定位 ~~~ #include<stdio.h> int fseek(FILE * stream, long offset, int whence); 功能: 移动文件流(文件光标)的读写位置 参数: stream: 已经打开的文件指针 offset: 根据whence来移动的位移数(偏移量),可以是正数,也可以是负数,如果正数,则相对于whence往右移动,如果是负数,则相对于whence往左移动.如果向前移动的字节数超过了文件开头则出错返回,如果向后移动的字节数超过了文件末尾,再次写入时将增大文件尺寸 whence: 其取值如下: SEEK_SET: 从文件开头一刀流offset个字节 SEEK_CUR: 从当前位置移动offset个字节 SEEK_END: 从文件末尾移动offset个字节 返回值: 成功:0 失败: -1 ~~~ C语言规定的起始位置有三种,分别为文件开头、当前位置和文件末尾,每个位置都用对应的常量来表示 ![](https://box.kancloud.cn/7a0c645230e1ac0bff4340a885a602f4_199x137.png) 例如,把位置指针移动到离文件开头100个字节处: ~~~ fseek(fp, 100, 0); ~~~ 值得说明的是,fseek() 一般用于二进制文件,在文本文件中由于要进行转换,计算的位置有时会出错 # 移动光标rewind ~~~ #include<stdio.h> void rewind(FILE * stream); 功能: 把文件流(文件光标)的读写位置移动到文件开头 参数: stream: 已经打开的文件指针 返回值: 无返回值 ~~~