c语言如何让指针到txt文件的最后一行开头,急!!!

 我来答
White_MouseYBZ
2017-11-03 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6386万
展开全部
#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;
}
daweihi
2012-07-28 · 超过12用户采纳过TA的回答
知道答主
回答量:28
采纳率:0%
帮助的人:19.5万
展开全部
如果文件比较大,直接把文件最后的一部分比如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了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fengyun703
2012-07-29 · 超过17用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:39.8万
展开全部
没有这样的现成函数。你可以自己写个,先指到末尾,在向前读文件判断是否为换行符
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
争锋达人1990
2012-07-28 · 超过14用户采纳过TA的回答
知道答主
回答量:113
采纳率:0%
帮助的人:48.1万
展开全部
好像需要用一个死循环,让其指到最后
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
松粒子
2012-07-28
知道答主
回答量:17
采纳率:0%
帮助的人:5.3万
展开全部
rewind()函数指向开头,再fseek()函数移动,移动量为从开头到最后一行开头的值。
追问
恩。。这个我更明白,txt的行数不确定,也就是说移动量是不定的,要怎么解决?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式