c++ 文件io 怎么把指针定位到指定的行

txt文件里 数据是按行存储的 每一行是一个单位的数据
而且,每一行数据的长度不一样
这样的情况下 怎么把指针定位到某一个行

ifstrea infile(要读取的文件);
string tstr;
int line;//定位到某一行
cin>>line;//输入要定位的行
for(int i=0;i!=line;i++)
getline(infile,temp);//这个函数的作用是读取一行数据
之后文件指针就定位到你想要的行的位置了!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-08-10
  如果行的长度不固定,没有简单的办法,只能一直读到第10行。如果每行的长度是固定的,那么用fseek直接定位。
  开一个临时内存区,
  然后一行一行的用fgets()读入,每次可以读一行,然后就可以定位了。
  i=1;
  while(i++<10) fgets();
  fgets();//第10行了。
第2个回答  2012-09-29
/**上面的回答有漏洞,就是不能回到文件指针以上的其他行
***定义一个指向任意行的函数,这个函数经过测试,没有问题。
**/
void point_to_line(ifstream& f, const int line){ //这里定义了文件输入流,你可以定义其他文件流

char* buf = new char[100]; //这里假设文件每行不超过100个字符
f.seekg(0, ios::beg); //先回到文件的开头
for(int i=0; i<line-1; i++)
f.getline(buf, 100);
}
第3个回答  2012-09-17
每行结束的时候有一个回车啊 只有一行一行的扫过去
第4个回答  2012-09-17
从前向后查,每个回车符就是一行
相似回答