想让文件指针指到文件开始,用 rewind(fp)即可。
用fseek ( fp , 0 , SEEK_SET )也可。
当然,用 long int ftell ( FILE * stream )找文件指针偏移位置,偏移为0,就在开始,不为0,仍需用 rewind,或 fseek 移动指针到开始。
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,失败时返回非零。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)