c语言如何让指针到txt文件的最后一行开头,急!!!
5个回答
展开全部
#include "stdio.h"
int main(int argv,char *argc[]){
FILE *fp;
char s[1000],ch;
if((fp=fopen("data.txt","r"))==NULL){
printf("Open the file failure...\n");
return 0;
}
fseek(fp,0L,SEEK_END);
fseek(fp,-3L,SEEK_CUR);
while(fgetc(fp)!='\n')
fseek(fp,-2L,SEEK_CUR);//到这里,fp指向的文件读指针已经移到最后一行的开头
printf("%s\n",fgets(s,1000,fp));//这一行只是打出来验证一下,按题意并不需要
fclose(fp);
return 0;
}
展开全部
如果文件比较大,直接把文件最后的一部分比如1000个字全部放到数组里面,然后比对。找到'\n'(asc码13回车符)记下位置就可以了。
追问
我这是这样想,可否提供代码,方便编写。。谢谢
追答
FILE *fp;
long len=0,lenbuf=0;
int weizhi=0;
char a[1000];
memset(a,1000,0);
if((fp=fopen("XXXX","rt")==NULL)
{ }
fseek(fp,0L,SEEK_END);//文件结尾
len=ftell(fp);//得到文件长度
lenbuf=len;
if(lenbuf>1000)
{
lenbuf=1000;
}
fseek(fp,0L,SEEK_SET); 定位文件开头
fread(fp,lenbuf,a);
fclose(fp);
for(int i=0;i1000)
printf("回车符在%d位置",len-1000+weizhi);
else
printf("回车符在%d位置",weizhi);
大概这样吧。好久不用C了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好像需要用一个死循环,让其指到最后
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
rewind()函数指向开头,再fseek()函数移动,移动量为从开头到最后一行开头的值。
追问
恩。。这个我更明白,txt的行数不确定,也就是说移动量是不定的,要怎么解决?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询