C语言 文件定位

C语言 文件定位,第1张

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,失败时返回非零。

1、使用fseek函数即可更改文件指针的位置。

函数名: fseek

功 能: 重定位流上的文件指针

用 法: int fseek(FILE *stream, long offset, int fromwhere)

描 述: 函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。

返回值: 成功,返回0,否则返回其他值。

2、例子:

fseek(fp,100L,0)//把文件内部指针移动到离文件开头100字节处;

fseek(fp,100L,1)//把文件内部指针移动到离文件当前位置100字节处;

fseek(fp,-100L,2)//把文件内部指针退回到离文件结尾100字节处。

fread(&k,sizeof(int),1,fp)//这句写错了一个字母

#include <stdio.h>

main()

{ FILE *fp

int i , a[6]={1,2,3,4,5,6},k

fp=fopen("data.dat","w+b")

for (i=0i<6i++)

{fseek(fp,0L,0) //使位置指针回到文件首

 fwrite(&a[5-i],sizeof(int),1,fp)}

 //每次写入都会覆盖,所以最后写入的是a[5-5]=a[0]=1

 

rewind(fp)//使位置指针回到文件首

fread(&k,sizeof(int),1,fp)//读取上面最后写入的那个数据,即1

fclose(fp)

printf("%d\n",k)//结果为1

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11981457.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存