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

2025-03-04 21:59:28
推荐回答(5个)
回答1:

ifstrea infile(要读取的文件);
string tstr;
int line;//定位到某一行
cin>>line;//输入要定位的行
for(int i=0;i!=line;i++)
getline(infile,temp);//这个函数的作用是读取一行数据
之后文件指针就定位到你想要的行的位置了!

回答2:

  如果行的长度不固定,没有简单的办法,只能一直读到第10行。如果每行的长度是固定的,那么用fseek直接定位。
  开一个临时内存区,
  然后一行一行的用fgets()读入,每次可以读一行,然后就可以定位了。
  i=1;
  while(i++<10) fgets();
  fgets();//第10行了。

回答3:

/**上面的回答有漏洞,就是不能回到文件指针以上的其他行
***定义一个指向任意行的函数,这个函数经过测试,没有问题。
**/
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 f.getline(buf, 100);
}

回答4:

每行结束的时候有一个回车啊 只有一行一行的扫过去

回答5:

从前向后查,每个回车符就是一行