首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C编程ftell fseek fread,读取文件大小

在C语言中,ftell、fseek和fread是用于文件操作的函数。ftell用于获取文件的当前位置,fseek用于移动文件指针到指定位置,而fread用于从文件中读取数据。

以下是这些函数的简要介绍:

  1. ftell:ftell函数用于获取文件的当前位置,即文件指针的位置。它返回一个长整型值,表示文件的字节偏移量。
代码语言:c
复制
#include<stdio.h>
long int ftell(FILE *stream);
  1. fseek:fseek函数用于移动文件指针到指定位置。它接受三个参数:文件指针、偏移量和起始位置。
代码语言:c
复制
#include<stdio.h>
int fseek(FILE *stream, long int offset, int origin);
  1. fread:fread函数用于从文件中读取数据。它接受四个参数:存储数据的缓冲区、每个数据项的大小、数据项的数量和文件指针。
代码语言:c
复制
#include<stdio.h>
size_t fread(void *buffer, size_t size, size_t count, FILE *stream);

要读取文件的大小,可以使用ftell函数。首先,将文件指针移到文件的末尾,然后使用ftell获取文件的大小,最后将文件指针移回到文件的开头。

代码语言:c
复制
#include<stdio.h>

int main() {
    FILE *file = fopen("example.txt", "rb");
    if (file == NULL) {
        printf("Error opening file\n");
        return 1;
    }

    // Move file pointer to the end of the file
    fseek(file, 0, SEEK_END);

    // Get the file size
    long fileSize = ftell(file);

    // Move file pointer back to the beginning of the file
    fseek(file, 0, SEEK_SET);

    printf("File size: %ld bytes\n", fileSize);

    fclose(file);
    return 0;
}

在这个示例中,我们使用fopen函数打开文件,然后使用fseek和ftell函数获取文件大小,最后使用fclose函数关闭文件。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C 语言】文件操作 ( ftell 函数 | 使用 ftell 函数获取当前指针位置 | 通过 ftell 计算文件大小 )

文章目录 一、ftell 函数 二、使用 ftell 函数获取当前指针位置 三、通过 ftell 计算文件大小 一、ftell 函数 ---- ftell() 函数的作用是 获取文件的 当前指针位置 相对于...fseek 函数来回移动指针 , 不容易确定当前指针位置 , 通过调用 ftell 函数确定指针位置 ; 二、使用 ftell 函数获取当前指针位置 ---- 代码示例 : 第一次打印指针位置 : 刚打开文件...= %d\n", location); // 读取 2 字节 fread(array2, 1, sizeof(array2), p2); // 打印前 2 字节数据...); return 0; } 执行结果 : 三、通过 ftell 计算文件大小 ---- 代码示例 : 打开文件后 , 直接使用 fseek 跳转到文件末尾 , 然后使用 ftell 获取当前指针...(p2, 0, SEEK_END); // 使用 ftell 函数获取当前指针位置 int location = ftell(p2); // 通过读取当前文件指针位置, 即可获取文件大小

88510

C语言中fread(),fwrite(),fseek()用法和功能

参考链接: C++ fseek() 1.用法:  int fread(void *buffer,int size,int count,FILE *fp);  int fwrite(void *buffer...,int size,int count,FILE *fp);  2.功能:  fread()──从fp所指向文件的当前位置开始,一次读入size个字节,重复count次,并将读入的数据存放到从buffer...3.fseek用法  int fseek(FILE *stream, long offset, int fromwhere);  第一个参数file指针  第二个参数移动的偏移量  第三个参数移动到哪里...);把fp指针移动到离文件开头100字节处;  fseek(fp,100L,SEEK_CUR);把fp指针移动到离文件当前位置100字节处;  fseek(fp,100L,SEEK_END);把fp指针退回到离文件结尾...此函数常用来计算流的长度:  int filesize = fseek( fp, 0, SEEK_END );  fseek( fp, 0, SEEK_SET );  文章来自于:  http://www.programgo.com

1.6K00

C++之文件

C++ 文件处理 官方文档:http://www.cplusplus.com/reference/cstdio/fopen/ 相关内容简介: fopen方法的介绍 文本文件读取 写入文本文件 二进制文件读写...读取文件大小 文本文件加解密 二进制文件的加解密 fopen fopen( ) 函数来创建一个新的文件或者打开一个已有的文件,这个调用会初始化类型 FILE 的一个对象,类型 FILE 包含了所有用来控制流的必要的信息...system("pause"); return 0; } 二进制文件读写 实现一个exe文件读取,再进行输出到新的路径 用到了fread和fwrite两个读和写的方法 size_t fread...len, write_fp); } fclose(read_fp); fclose(write_fp); system("pause"); return 0; } 读取文件大小...long int ftell(FILE *stream) 栗子代码:读取图片文件的大小 int main() { char *read_path = "D:\\NDK\\class\\files

80430

c语言文件读写操作

size_t fread( void *buffer, size_t size, size_t count, FILE *stream ) buffer 是读取的数据存放的内存的指针(可以是数组,也可以是新开辟的空间...,buffer就是一个索引) size 是每次读取的字节数 count 是读取次数 stream 是要读取的文件的指针 size_t fwrite ( const void * ptr, size_t...fseek 函数名: fseek 功 能: 重定位流上的文件指针 用 法: int fseek(FILE *stream, long offset, int fromwhere); 描 述: 函数设置文件指针..., filename); } //统计文件大小 fseek(fp,0,SEEK_END); int len = ftell(fp); //若使用fseekftell统计文件大小,那么在获得大小后要将指针移回原来的位置...,因为fseek会改变指针的位置 fseek(fp,0,0); //保存从文件中读去的数据 char buf[10000] = {0}; //读取文件 fread(buf,len,1,fp);

1K10

【OpenGL】二十四、OpenGL 纹理贴图 ( 读取文件内容 | 桌面程序添加控制台窗口 | ‘fopen‘: This function may be unsafe 错误处理 )

; // 打开文件 FILE* pFile = fopen(filePath, "rb"); 然后使用 fseek 函数获取当前的文件大小 ; // 判定文件大小, 将文件指针从 "尾部"...开始移动 // 移动 0 个字节 // 成功返回 0 , 失败返回非 0 fseek(pFile, 0, SEEK_END); 最后调用 fread 函数将文件内容读取到数组中 ; /.../ 将读取的数据存储到 fileContent 指向的内存中 fread(fileContent, sizeof(unsigned char), nLen, pFile); 代码示例 : #include..., 将文件指针从 "尾部" 开始移动 // 移动 0 个字节 // 成功返回 0 , 失败返回非 0 fseek(pFile, 0, SEEK_END); // 获取文件指针位置 ,...当前文件指针位于文件尾部 // 当前的文件指针位置就是文件的字节长度 int nLen = ftell(pFile); // 如果文件长度大于 0 , 才去读取文件 if (nLen

44500

C 语言】文件操作 ( 学生管理系统 | 插入数据 | 查询数据 | 删除数据 )

fread(&s, 1, sizeof(struct student), p); // 判断是否读取到文件末尾, 注意 feof 必须在文件操作之后才能调用..., 将文件指针跳转到文件结尾 fseek(p, 0, SEEK_END); // 获取文件指针位置 , 该位置就是文件大小 int size = ftell(p);...// 为学生类型结构体分配堆内存空间, 分配文件大小空间 struct student *s = malloc(size); // 文件指针指向开始位置 fseek(p, 0,..., 将文件指针跳转到文件结尾 fseek(p, 0, SEEK_END); // 获取文件指针位置 , 该位置就是文件大小 int size = ftell(p);...// 为学生类型结构体分配堆内存空间, 分配文件大小空间 struct student *s = malloc(size); // 文件指针指向开始位置 fseek(p, 0,

80410

C】文件操作(二)

前言 这里主要记录一下C对二进制的读写操作, 包括随机读取文件和写入文件 fseekftell fseek fseek主要用来移动文件指针, 它允许用户像对待数组那样对待一个文件, 可以直接将文件指针移动到任意字节处..., 那么返回值为0, 如果有错误, 则返回值为-1. ftell ftell函数用来获得当前文件指针的位置, 它返回当前文件指针距离文件开始处的字节数目, 函数原型如下 long int ftell (...FILE * stream ); 如果函数执行失败会返回-1, 下面是一个使用示例, 接合fseekftell用来获得文件的大小 long file_size(char *fileName) {...0200 0000 0300 0000 0400 0000 0500 0000 0600 0000 0700 0000 0800 0000 0900 0000 0a00 0000 0b00 0000 0c00...gid_t st_gid; //device type 若此文件为装置设备文件, 则为其设备编号 dev_t st_rdev; //total size, in bytes 文件大小

41710
领券