重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include "stdio.h"
创新互联建站是一家专业提供三河企业网站建设,专注与成都网站设计、成都网站建设、H5网站设计、小程序制作等业务。10年已为三河众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
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;
}
1,正常考虑应用循环for或while什么的。
2,也可以使用goto语句,在函数开头设置标签,在函数尾部用goto跳到这个标签处执行。
3,歪门邪道,考虑递归函数(小心走火入魔)
不知道LZ到底想要干什么。
如果没有函数调用,函数是不会执行的。
如果按照LZ的一直跳回,那g()的后半部分永远都不会执行,那后半部分有什么用呢?
f()
{
//...
g();//在f()的最后面调用g,保证f执行之后,g会跟着执行
}
g()
{
//...
f();//在g执行到一半的时候,跳到f();
//...
}
main()
{
f();
}
小坷仔。用cprintf("\n\r")就可以换行了,换到开头。知不知道我是谁
A函数的源码可控吗?如果可控,把对B函数的调用改成对新实现的调用就行了。
如果A函数不是自己写的(源码不可控),会麻烦一些。例如,在支持指针的语言上,可以修改B函数入口部分的汇编代码,jmp到自己的新实现。要求B函数和你的实现原型必须完全相同。