返回介绍

入门

基础

进阶

52. 文件操作函数

发布于 2024-10-07 02:37:14 字数 2724 浏览 0 评论 0 收藏 0

其它文件操作函数

ftell 函数

函数声明long ftell ( FILE * stream );
所在文件stdio.h
函数功能得到流式文件的当前读写位置,其返回值是当前读写位置偏离文件头部的字节数。
参数及返回解析 
参数FILE * 流文件句柄
返回值int 成功,返回当前读写位置偏离文件头部的字节数。失败, 返回-1
#include <stdio.h>

int main()
{
    char *str = "123456789";
    FILE *fp = fopen("test.txt", "w+");
    long cp = ftell(fp);
    printf("cp = %li\n", cp); // 0
    // 写入一个字节
    fputc(str[0], fp);
    cp = ftell(fp);
    printf("cp = %li\n", cp); // 1
    fclose(fp);
    return 0;
}
  • rewind 函数
函数声明void rewind ( FILE * stream );
所在文件stdio.h
函数功能 将文件指针重新指向一个流的开头。 
参数及返回解析 
参数FILE * 流文件句柄
返回值void 无返回值
#include <stdio.h>

int main()
{
    char *str = "123456789";
    FILE *fp = fopen("test.txt", "w+");
    long cp = ftell(fp);
    printf("cp = %li\n", cp); // 0
    // 写入一个字节
    fputc(str[0], fp);
    cp = ftell(fp);
    printf("cp = %li\n", cp); // 1
    // 新指向一个流的开头
    rewind(fp);
    cp = ftell(fp);
    printf("cp = %li\n", cp); // 0
    fclose(fp);
    return 0;
}
  • fseek 函数
函数声明int fseek ( FILE * stream, long offset, int where);
所在文件stdio.h
函数功能偏移文件指针。
参数及返回解析 
参 数FILE * stream 文件句柄
 long offset 偏移量
 int where 偏移起始位置
返回值int 成功返回 0 ,失败返回-1
  • 常用宏
#define SEEK_CUR 1 当前文字
#define SEEK_END 2 文件结尾
#define SEEK_SET 0 文件开头
#include <stdio.h>

int main()
{
    FILE *fp = fopen("test.txt", "w+");
    fputs("123456789", fp);
    // 将文件指针移动到文件结尾,并且偏移 0 个单位
    fseek(fp, 0, SEEK_END);
    int len = ftell(fp); // 计算文件长度
    printf("len = %i\n", len);
    fclose(fp);
    return 0;
}
#include <stdio.h>

int main()
{
    FILE *fp;
   fp = fopen("file.txt","w+");
   fputs("123456789", fp);

   fseek( fp, 7, SEEK_SET );
   fputs("lnj", fp);
   fclose(fp);
    return 0;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文