
c语言中的fseek函数如何定位到下一行?
1个回答
展开全部
fseek本身无法定位下一行。
但是可以通过自定义函数来处理。
#include <stdio.h>
int getNextLinePos(FILE *p)
{
int ch;
int curpos = 0;
ch=getc(p);
curpos = ftell(p);
while(ch!=EOF)
{
putchar(ch);
ch=getc(p);
if(ch == '\n')
{
break;
}
}
return (ftell(p) - curpos + 1);
}
int main(void)
{
FILE *fp;
fp=fopen("FileDemo.tt","r");
if (fp==NULL)
{
printf("I can't open file!\n");
return 0;
}
fseek(fp, getNextLinePos(fp), SEEK_SET); // 指向下一行
return 0;
}
但是可以通过自定义函数来处理。
#include <stdio.h>
int getNextLinePos(FILE *p)
{
int ch;
int curpos = 0;
ch=getc(p);
curpos = ftell(p);
while(ch!=EOF)
{
putchar(ch);
ch=getc(p);
if(ch == '\n')
{
break;
}
}
return (ftell(p) - curpos + 1);
}
int main(void)
{
FILE *fp;
fp=fopen("FileDemo.tt","r");
if (fp==NULL)
{
printf("I can't open file!\n");
return 0;
}
fseek(fp, getNextLinePos(fp), SEEK_SET); // 指向下一行
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询