C语言 文件定位

FILE*fp;fp=fopen("***.dat","rb");如何实现把文件指针fp移动到文件***.dat的末尾?... FILE *fp;
fp=fopen("***.dat","rb");

如何实现把文件指针fp移动到文件***.dat的末尾?
展开
 我来答
zyl0462
2015-06-04 · TA获得超过1083个赞
知道小有建树答主
回答量:433
采纳率:75%
帮助的人:366万
展开全部
C语言文件定位,主要依靠fseek函数实现,具体代码如下,
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE *fp=NULL;
long len=0L;//文件长度
fp=fopen("test.dat","rb");//假设当前目录有test.dat文件
if(!fp)//检查文件打开是否正常
{
printf("文件打开失败,程序退出!\n");
exit(1);
}
fseek(fp,0L,SEEK_END);//文件定位到文件末尾
len=ftell(fp);//获取文件长度
if(len/1024>0)
printf("文件大小为%ldKB!\n",len/1024);
else
printf("文件大小为%ldB!\n",len);
rewind(fp);//文件指针移到开始处
if(fp)//关闭文件
{
fclose(fp);
fp=NULL;
}
return 0;
}

int fseek( FILE *stream, long offset, int origin );函数fseek()为文件指针stream设置位置数据。origin的值应该是下列值之一,
SEEK_SET(从文件的开始处开始搜索)
SEEK_CUR(从当前位置开始搜索)
SEEK_END(从文件的结束处开始搜索)
fseek()成功时返回0,失败时返回非零。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4dc7f90
2008-03-02 · TA获得超过1.6万个赞
知道小有建树答主
回答量:1702
采纳率:0%
帮助的人:760万
展开全部
1,fseek函数
fseek函数用来移动文件位置指针到指定的位置上,接着的读或写操作将从此位置开始.函数的调用形式如下:
fseek(pf,offset,origin)
pf:文件指针
offset:以字节为单位的位移量,为长整形.
origin:是起始点,用来指定位移量是以哪个位置为基准的.
1,fseek函数
位移量的表示方法
标识符 数字 代表的起始点
SEEK_SET 0 文件开始
SEEK_END 2 文件末尾
SEEK_CUR 1 文件当前位置
假设pf已指向一个二进制文件,则;
fseek(pf,30L,SEEK_SET)
fseek(pf,-10L*sizeof(int),SEEK_END)
对于文本文件,位移量必须是0;如:
fseek(pf,0L,SEEK_SET)
fseek(pf,0L,SEEK_END)
2. ftell函数
ftell函数用以获得文件当前位置指针的位置,函数给出当前位置指针相对于文件开头的字节数.如;
long t;
t=ftell(pf);
当函数调用出错时,函数返回-1L.
我们可以通过以下方式来测试一个文件的长度:
fseek(fp,0L,SEEK_END);
t=ftell(fp);
3.rewind函数
调用形式为:
rewind(pf);
函数没有返回值.函数的功能是使文件的位置指针回到文件的开头.
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式