[难题1]怎么读取txt文本的最后100行?

Q/T/A:Question/Thinks/Answer

Q:C++中,怎么读取txt文本的最后100行,并将其封装成函数?大家有啥好的想法没?

T

     t1:最常用的办法就是轮询替换,定义一个100大小的buffer,从第0行一直读到最后一行,然后依次替换。最后剩下的就是最后100行的数据。

    

A

A1)答案代码1

std::fstream decrFileStream("test.txt", std::ios_base::in);

//定位指针到最后20000个字符/所有字符
 decrFileStream.seekg(0, std::ios::end);
 std::ios::pos_type ss = decrFileStream.tellg();
 long nFilesize = (long)ss;
 if(nFilesize>20000)
 {
  decrFileStream.seekg(-20000,std::ios::end); //读最后20000数据
 }else
 {
  decrFileStream.seekg(0,std::ios::beg);
 }

//读取最后20000字符值
while ( std::getline(decrFileStream,line)) 
{
    /* 处理line */
}

 

你可能感兴趣的:(难题解决)