ftell()函数

函数名: ftell
  功 能: 返回当前文件指针
  用 法: long ftell(FILE *stream);
  程序例:
  #include <stdio.h>
  int main(void)
  {
  FILE *stream;
  stream = fopen("MYFILE.TXT", "w+");
  fprintf(stream, "This is a test");
  printf("The file pointer is at byte /
  %ld/n", ftell(stream));
  fclose(stream);
  return 0;
  }
  ftell()函数用于获取文件位置指针。
  函数 ftell() 用于得到文件当前位置相对于文件首的偏移字节数。在随机方式存取文件时,由于文件位置频繁的前后移动,程序不容易确定文件的当前位置。调用函数ftell()就能非常容易地确定文件的当前位置。 
  函数 ftell() 的调用形式为
  ftell(fp);利用函数 ftell() 也能方便地知道一个文件的长。如以下语句序列: fseek(fp, 0L,SEEK_END); len =ftell(fp); 首先将文件的当前位置移到文件的末尾,然后调用函数ftell()获得当前位置相对于文件首的位移,该位移值等于文件所含字节数。

读入文件时的ftell

ftell一般用于读取文件的长度,下面补充一个例子,读取文本文件中的内容:
  #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; 
  }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值