C语言 文件读写 ftell 函数 - C语言零基础入门教程

目录

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门

一.ftell 函数简介

C 语言函数 ftell 用于得到文件位置指针当前位置相对于文件首的偏移字节数,ftell 函数声明如下:

include <stdio.h>

include <stdlib.h>

/*
*描述:返回给定流 stream 的当前文件位置
*
*参数:
* [in] stream:文件指针句柄
*
*返回值:如果成功,该函数返回位置标识符的当前值;如果发生错误,则返回 -1L;
*/
long int ftell(FILE *stream);

二.ftell 函数实战

//
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 文件读写 ftell 函数
//@Time:2021/07/24 07:30
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/
/

include <stdio.h>

include <stdlib.h>//fseek函数调用

int main()
{
long position;
char list[100];

/* rb+ 读写打开一个二进制文件,允许读数据。*/
FILE * fp = fopen("a.txt", "rb+");

if (fp == NULL) {
printf("file error\n");
exit(1);
}

fread(list,sizeof(char),100,stream);
//get position after read
position=ftell(stream);
printf("Position after trying to read 100 bytes:%ld\n",position);

fclose(stream);
stream=NULL;
return 0;
}

三.ftell 函数经典使用

当我们不知道文件内容有多大的时候,使用 fread 不知道应该设置需要读取的元素数量,那么我们一般可以通过 ftell 函数获取当前文件的大小,然后在通过 fread 函数读取到缓冲区,示例代码如下:

//
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 文件读写 ftell 函数
//@Time:2021/07/24 07:30
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/
/

include <stdio.h>

include <stdlib.h>

int main()
{
FILE *fp;
int flen;
char *p;

/* 以只读方式打开文件 */
if((fp = fopen ("1.txt","r"))==NULL)
{
printf("\nfile open error\n");
exit(0);
}

fseek(fp,0L,SEEK_END); /* 定位到文件末尾 /
flen=ftell(fp); /
得到文件大小 */
p=(char )malloc(flen+1); / 根据文件大小动态分配内存空间 */

if(p==NULL)
{
fclose(fp);
return 0;
}

fseek(fp,0L,SEEK_SET); /* 定位到文件开头 /
fread(p,flen,1,fp); /
一次性读取全部文件内容 /
p[flen]='\0'; /
字符串结束标志 */
printf("%s",p);

fclose(fp);
free(p);
return 0;
}

四.猜你喜欢

  1. C 语言 数组下标越界和内存溢出区别
  2. C 语言 使用指针遍历数组
  3. C 语言 指针和数组区别
  4. C 语言 指针数组和数组指针区别
  5. C 语言 野指针
  6. C 语言 函数值传递和址传递
  7. C 语言 函数不定长参数
  8. C 语言 函数指针
  9. C 语言 指针函数
  10. C 语言 回调函数 callback
  11. C 语言 #pragma once
  12. C 语言 #include <> 与 #include “” 区别
  13. C 语言 const 修饰函数参数
  14. C 语言 const 和 define 区别
  15. C 语言 #运算符
  16. C 语言 ##运算符
  17. C 语言 __VA_ARGS__
  18. C 语言 ##__VA_ARGS__
  19. C 语言 函数不定长参数 ##__VA_ARGS__经典案例
  20. C 语言 va_start / va_end / va_arg 自定义 printf 函数
  21. C 语言 main 函数
  22. C 语言 main 函数参数 main(int argc, char *argv[])
  23. C 语言 局部变量
  24. C 语言 全局变量
  25. C 语言 全局变量和局部变量区别
  26. C 语言 static
  27. C 语言 extern

未经允许不得转载:猿说编程 » C 语言 文件读写 ftell 函数

本文由博客 - 猿说编程 猿说编程 发布!

posted @ 2021-10-12 19:32  猿说编程  阅读(492)  评论(0)    收藏  举报