ftell
- 中文名
- ftell
- 实 质
- 函数
- 头文件
- <stdio.h>
- 功 能
- 返回当前文件位置
目录
- 1函数简介
- ▪函数名
- ▪函数原型
- ▪函数功能
- ▪约束条件
- 2调用示例
- 3程序示例
函数简介
编辑 用于得到文件位置指针当前位置相对于文件首的偏移字节数。函数名
ftell函数原型
long ftell(FILE *stream);函数功能
使用fseek函数后再调用函数ftell()就能非常容易地确定文件的当前位置。约束条件
因为ftell返回long型,根据long型的取值范围-231~231-1(-2147483648~2147483647),故对大于2.1G的文件进行操作时出错。调用示例
编辑 ftell(fp);利用函数 ftell() 也能方便地知道一个文件的长。如以下语句序列: fseek(fp, 0L,SEEK_END); len =ftell(fp); 首先将文件的当前位置移到文件的末尾,然后调用函数ftell()获得当前位置相对于文件首的位移,该位移值等于文件所含字节数。程序示例
编辑 举例1: #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 ", ftell(stream)); fclose(stream); return 0; } 举例2: ftell一般用于读取文件的长度,下面补充一个例子,读取文本文件中的内容: #include <stdio.h> #include <stdlib.h> int main() { FILE *fp; int flen; char *p; /* 以只读方式打开文件 */ if((fp = fopen ("1.txt","r"))==NULL) { printf(" file open error "); 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]=" "; /* 字符串结束标志 */ printf("%s",p); fclose(fp); free(p); return 0; } 程序改进 #include <stdio.h> main() { FILE *myf; long f1;//此处将f1设置为long 可以读取更长的文件 myf=fopen("1.txt","rb"); fseek(myf,0,SEEK_END); f1=ftell(myf); fclose(myf); printf(“%d ”,f1); }声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。