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 */
}