这里的offset 是干什么用的?麻烦请给我具体解释一下。谢谢。

来源:百度知道 编辑:UC知道 时间:2024/06/07 02:17:19
/****************删除函数**********************************/

void Delete()
{
int m,k=0,flag;
long offset1;/*定义一个长整型数据*/
char namekey[8], valid[4];
struct person one;
printf("\n请输入姓名:");
scanf("%s",namekey);
if((fp=fopen(filename,"r+"))==NULL)/*用读/写打开一个二进制文件*/
{
printf("\n不能打开通讯簿!");
exit(0);
}
while(!feof(fp))
{
offset1=ftell(fp);/*返回fp所指向的文件中的读写位置*/
fscanf(fp,"%s%s%s%s\n",one.name,one.number,one.tel,one.addr);/*从fp指定的文件将输入数据送到指定单元*/
if(!strcmp(namekey,one.name))
{
k=1;
break;
}
}
if(k)
{
printf("\n恭喜!已查到,记录为:");
printf("\n%-10s%-12s%-12s%-30s","姓名",&quo

offset1=ftell(fp); 这就是保存你当前文件操作中文件指针的位置。
fseek(fp,offset1,SEEK_SET);这就是还原文件指针到原来的位置。

这通常用于文件的修改,
先读出该处的数据,修改后写回。

什么吗