函数名: fseek
功 能: 重定位流上的文件指针
用 法: int fseek(FILE *stream, long offset, int fromwhere);
描 述: 函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。
返回值: 成功,返回0,否则返回其他值。
你想要的是让光标直接移动到某一行的起始位置,
前面几行用fgets();读过,但不接收不就行了
----------------------------------------------------------
呵呵,我也想知道更简单的方法,希望有高手来回答...
C标准库里面没有相关函数,我实现了一个,看能否帮上点忙:
#include
#define MAX_LENTH_OF_LINE 1024
int SetPositionByLine( FILE *stream, int nLine )
{
int i = 0;
char buffer[MAX_LENTH_OF_LINE + 1];
fpos_t pos;
rewind(stream);
for(; i < nLine; i ++ )
fgets( buffer, MAX_LENTH_OF_LINE, stream);
fgetpos(stream, &pos);
return 0 ;
}
int main( void )
{
char buffer[MAX_LENTH_OF_LINE + 1];
FILE *stream;
stream = fopen("D:\\a.txt", "w+");
fprintf( stream, "abcdefg\nhijklmn\nopqrst\nuvwxyz\n");
SetPositionByLine(stream, 3);
fgets( buffer, MAX_LENTH_OF_LINE, stream);
printf("%s\n", buffer );
fclose(stream);
return 0;
}
可以 使用fseek函数
具体使用请见:http://baike.baidu.com/view/656696.htm?fr=ala0_1
你可以在文件开始的地方保存你的文件内容信息,及每一行多少字节
然后你要定位就直接运算一下就可以了