fseek函数,文件指针定位
while(fgets(tbuf,sizeof(tbuf),fp1)!=NULL){p=strstr(tbuf,wbuf);if(p!=NULL){m=-2L*(size...
while ( fgets (tbuf, sizeof(tbuf), fp1) !=NULL){
p=strstr(tbuf,wbuf);
if(p !=NULL){
m=-2L*(sizeof(tbuf));
fseek(fp1,m,1);
fgets(tbuf,sizeof(tbuf),fp1);
printf("%s\n",tbuf);
fgets(tbuf,sizeof(tbuf),fp1);
printf("%s\n",tbuf);
fgets(tbuf,sizeof(tbuf),fp1);
printf("%s\n",tbuf);
printf("$$$$$$$$$$$$$$$$$\n");
}
}
部分程序如上,在fp1所指的文件中每次取一行,然后在这一行查找wbuf中关键字,若找到则将文件指针fp1上移两行。然后输出三行。。。
程序运行结果是从关键字的下面一行开始输出三行(好像fseek没起作用) 展开
p=strstr(tbuf,wbuf);
if(p !=NULL){
m=-2L*(sizeof(tbuf));
fseek(fp1,m,1);
fgets(tbuf,sizeof(tbuf),fp1);
printf("%s\n",tbuf);
fgets(tbuf,sizeof(tbuf),fp1);
printf("%s\n",tbuf);
fgets(tbuf,sizeof(tbuf),fp1);
printf("%s\n",tbuf);
printf("$$$$$$$$$$$$$$$$$\n");
}
}
部分程序如上,在fp1所指的文件中每次取一行,然后在这一行查找wbuf中关键字,若找到则将文件指针fp1上移两行。然后输出三行。。。
程序运行结果是从关键字的下面一行开始输出三行(好像fseek没起作用) 展开
4个回答
展开全部
fseek(fp1,m,1);把文件内部指针移动到离文件开头m字节处
第二个参数m偏移量,第三个参数1表示当前位置
它表示偏移量,如果m超过1行的长度,只会回到行首,你要将文件指针fp1上移两行不能用这个函数
fseek,是用于二进制方式打开的文件,移动文件读写指针位置,通常文件打开后,读写位置按先后顺序。fseek函数是设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。fseek函数和lseek函数类似,但lseek返回的是一个off_t数值,而fseek返回的是一个整型。
第二个参数m偏移量,第三个参数1表示当前位置
它表示偏移量,如果m超过1行的长度,只会回到行首,你要将文件指针fp1上移两行不能用这个函数
fseek,是用于二进制方式打开的文件,移动文件读写指针位置,通常文件打开后,读写位置按先后顺序。fseek函数是设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。fseek函数和lseek函数类似,但lseek返回的是一个off_t数值,而fseek返回的是一个整型。
展开全部
fseek(fp1,m,1);把文件内部指针移动到离文件开头m字节处
第二个参数m偏移量,第三个参数1表示当前位置
它表示偏移量,如果m超过1行的长度,只会回到行首,你要将文件指针fp1上移两行不能用这个函数
第二个参数m偏移量,第三个参数1表示当前位置
它表示偏移量,如果m超过1行的长度,只会回到行首,你要将文件指针fp1上移两行不能用这个函数
追问
我的目的是让它从当前位置向上(-)移动m个单元,即上跳两行。我应该怎么用呢??先谢谢您
函数设置文件指针fp1的位置。如果执行成功,fp1将指向以fromwhere(偏移起始位置:文件头0,当前位置1,文件尾2)为基准,偏移m(指针偏移量)个字节的位置???
追答
读文件,文件指针也就移动了,想定位到第几行,就读到第几行就可以了
好象没有直接把指针移动若干行的函数
你可以设置一个标志,标志回车换行后的位置set=1,2,3,记住每次1,2指针的位置,用临时变量,读到3时(当前位置)如果有关键字则把指针指向1的位置。交替,用2个临时变量就OK了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fseek(fp1,m,1);把文件内部指针移动到离文件开头m字节处
第二个参数m偏移量,第三个参数1表示当前位置
它表示偏移量,如果m超过1行的长度,只会回到行首,你要将文件指针fp1上移两行不能用这个函数
追问:
我的目的是让它从当前位置向上(-)移动m个单元,即上跳两行。我应该怎么用呢??先谢谢您
函数设置文件指针fp1的位置。如果执行成功,fp1将指向以fromwhere(偏移起始位置:文件头0,当前位置1,文件尾2)为基准,偏移m(指针偏移量)个字节的位置???
追答:
读文件,文件指针也就移动了,想定位到第几行,就读到第几行就可以了
好象没有直接把指针移动若干行的函数
你可以设置一个标志,标志回车换行后的位置set=1,2,3,记住每次1,2指针的位置,用临时变量,读到3时(当前位置)如果有关键字则把指针指向1的位置。交替,用2个临时变量就OK了。
第二个参数m偏移量,第三个参数1表示当前位置
它表示偏移量,如果m超过1行的长度,只会回到行首,你要将文件指针fp1上移两行不能用这个函数
追问:
我的目的是让它从当前位置向上(-)移动m个单元,即上跳两行。我应该怎么用呢??先谢谢您
函数设置文件指针fp1的位置。如果执行成功,fp1将指向以fromwhere(偏移起始位置:文件头0,当前位置1,文件尾2)为基准,偏移m(指针偏移量)个字节的位置???
追答:
读文件,文件指针也就移动了,想定位到第几行,就读到第几行就可以了
好象没有直接把指针移动若干行的函数
你可以设置一个标志,标志回车换行后的位置set=1,2,3,记住每次1,2指针的位置,用临时变量,读到3时(当前位置)如果有关键字则把指针指向1的位置。交替,用2个临时变量就OK了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
(2).fseek:移动文件位置指针到指定的位置,接着的读写将从此位置开始。 rewind TAG:文件,ANSI C文件处理函数,文件定位函数,rewind函数TEXT:rewind函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询