weidagang2046的专栏

物格而后知致
随笔 - 8, 文章 - 409, 评论 - 101, 引用 - 0
数据加载中……

C语言学习进程:fseek与ftell函数

fseek函数是 用来设定文件的当前读写位置.

函数原型: int fseek(FILE *fp,long offset,int origin);

函数功能:把fp的文件读写位置指针移到指定的位置.

fseek(fp,20,SEEK_SET); 意思是把fp文件读写位置指针从文件开始后移20个字节.



ftell函数是用来获取文件的当前读写位置;

函数原型: long ftell(FILE *fp)

函数功能:得到流式文件的当前读写位置,其返回值是当前读写位置偏离文件头部的字节数.

ban=ftell(fp); 是获取fp指定的文件的当前读写位置,并将其值传给变量ban.



fseek函数与ftell函数综合应用:

分析:可以用fseek函数把位置指针移到文件尾,再用ftell函数获得这时位置指针距文件头的字节数,这个字节数就是文件的长度.

#include <stdio.h>

main()

{

   FILE *fp;

   char filename[80];

   long length;

   printf("输入文件名:");

   gets(filename);

   //以二进制读文件方式打开文件

   fp=fopen(filename,"rb");

   if(fp==NULL)

      printf("file not found!\n");

   else

      {

         //把文件的位置指针移到文件尾

          fseek(fp,OL,SEEK_END);

         //获取文件长度;

          length=ftell(fp);

          printf("该文件的长度为%1d字节\n",length);

          fclose(fp);

      }

}


from: http://my.opera.com/lau_jia/blog/show.dml/380421

posted on 2007-01-05 10:46 weidagang2046 阅读(35088) 评论(7)  编辑  收藏 所属分类: C/C++

评论

# re: C语言学习进程:fseek与ftell函数[未登录]  回复  更多评论   

牛人就是不一样
2008-02-02 11:31 | 流浪者

# re: C语言学习进程:fseek与ftell函数  回复  更多评论   

学习,在于多思考!其实每个人都是有潜能的。。。
2008-08-10 23:52 | 路过者

# re: C语言学习进程:fseek与ftell函数  回复  更多评论   

OL 是什么!!!!!
2008-10-04 17:06 | 顶顶顶

# re: C语言学习进程:fseek与ftell函数  回复  更多评论   

楼上问0L什么意思,其中“0”是零,别理解成字母“O”了,整体意思就是说将位置指针移动到离文件末尾的0个字节处
例如:feek(fp,100L,0);将位置指针移动到离文件开头的100个字节处
feek(fp,50L,1);将位置指针移动到当前位置的50个字节处
feek(fp,-10L,2);将位置指针从文件末尾处向后退10个字节
(其中0代表文件开始SEEK-SET,1代表文件当前位置SEEK-CUR,2代表文件末尾SEEK-END)
2008-10-16 11:10 | 亮哥哥

# re: C语言学习进程:fseek与ftell函数  回复  更多评论   

fseek(fp,0,SEEK_END);
length=ftell(fp);

vector<char> buff[length];
ret = fread(&buff[0], length, 1, fp);

这么读,ret和lengthf总是不等,相差挺大的,请问是为什么?
email: shark926@sina.com
2008-11-03 18:47 | 朱江波

# re: C语言学习进程:fseek与ftell函数  回复  更多评论   

@朱江波
因为你length=ftell(fp); 之后

还需要把句柄fseek(fp,0,SEEK_START);
2009-01-16 15:39 | 文文

# re: C语言学习进程:fseek与ftell函数  回复  更多评论   

fseek(fp, FSEEK_SET, FSEEK_END);
file_len = ftell(fp);

这样不就可以获取文件大小了嘛,当前文件指针还在文件开头
2009-10-10 13:49 | Yi Ling

只有注册用户登录后才能发表评论。


网站导航: