当前位置: 首页 > news >正文

【C语言】文本操作函数fseek、ftell、rewind

一、fseek 

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

重新定位文件指针的位置,使其指向以origin为基准、偏移offset字节的位置。
成功返回0,失败返回非零值(通常为-1)。

origin有如下三种:分别是从开头、中间、结尾开始

int main()
{FILE* pf = fopen("test.txt", "r");if (pf == NULL){perror(pf);}else{//abcdefint ch = fgetc(pf);printf("%c\n", ch);//ach = fgetc(pf);printf("%c\n", ch);//bch = fgetc(pf);printf("%c\n", ch);//c//想要跳回到b进行读取,三种方法//1.fseek(pf, 1, SEEK_SET);//2.fseek(pf, -2, SEEK_CUR);fseek(pf, -5, SEEK_END);ch = fgetc(pf);printf("%c\n", ch);//b}return 0;
}

 二、ftell

long int ftell ( FILE * stream );

得到的是返回文件指针相对于起始位置的偏移量数字的大小代表当前光标距离文件起始处的字节数。

返回值的类型是long

int main()
{FILE* pf = fopen("test.txt", "r");if (pf == NULL){perror(pf);}else{//abcdefint ch = fgetc(pf);printf("%c\n", ch);//aprintf("%d\n", ftell(pf));//偏移量1ch = fgetc(pf);printf("%c\n", ch);//bprintf("%d\n", ftell(pf));//偏移量2ch = fgetc(pf);printf("%c\n", ch);//cprintf("%d\n", ftell(pf));//偏移量3}return 0;
}

三、rewind 

void rewind ( FILE * stream );

使文件读写指针指向文件开始位置 

int main()
{FILE* pf = fopen("test.txt", "r");if (pf == NULL){perror(pf);}else{//abcdefint ch = fgetc(pf);printf("%c\n", ch);//ach = fgetc(pf);printf("%c\n", ch);//bch = fgetc(pf);printf("%c\n", ch);//crewind(pf);ch = fgetc(pf);printf("%c\n", ch);//a}return 0;
}

相关文章:

  • 装饰器设计模式(Decorator Pattern)详解
  • (A题|支路车流量推测问题)2025年第二十二届五一数学建模竞赛(五一杯/五一赛)解题思路|完整代码论文集合
  • Ubuntu18 登录界面死循环 Ubuntu进不了桌面
  • UN R79 关于车辆转向装置形式认证的统一规定(正文部分1)
  • 编程语言全景解析与编程技巧深度探索
  • 【算法扩展】斐波那契查找算法 - JAVA
  • Python结合QT进行开发
  • ES6函数、对象和面向对象扩展
  • QT6 源(66)篇三:阅读与注释类 QAbstractSpinBox ,这是螺旋框的基类,附上源码
  • QML Image 组件详解
  • Stm32 烧录 Micropython
  • 深度学习框架搭建(Vscode/Anaconda/CUDA/Pytroch)
  • 小牛电动:荣登央视舞台,引领智能出行新潮流
  • 26考研——输入/输出系统(7)
  • 基于Redis实现-用户签到
  • 数据库 AI 助手测评:Chat2DB、SQLFlow 等工具如何提升开发效率?
  • 前端HTML基础知识
  • 超稳定性理论
  • AI Agent(2):Agent技术架构
  • 2025五一杯B题超详细解题思路
  • 《水饺皇后》:命运如刀,她以饺子还击
  • 陈逸飞《黄河颂》人物造型与借鉴影像意义
  • 解放日报:浦东夯实“热带雨林”式科创生态
  • 深交所修订创业板指数编制方案,引入ESG负面剔除机制
  • 69岁朱自强被查,曾任南京地铁总经理
  • 国家发改委下达今年第二批810亿超长期特别国债资金,支持消费品以旧换新