所以一个特异性行,我发现,我想读取文件的具体线路,但我已经有了不工作:阅读从C++中的txt文件
string str;
int target = 0;
ifstream record;
record.open("Record.txt");
target = std::count(std::istreambuf_iterator<char>(record), std::istreambuf_iterator<char>(), '\n') - 8;
cout << target << endl;
for(int lineNum = 0; lineNum <= target; lineNum++)
{
getline(record, str);
if(lineNum == target)
{
cout <<"the id: "<< str << endl;
}
}
在上面,我使用std :: count来计算文件的行数。我知道我总是希望从底部读取第七行,所以我将目标设定为该目标。接下来,我遍历每一行直到目标时间,然后检查我是否在目标行。如果是这样,那么就行了。
但是,它没有给我任何东西。对于具有22行的文件,我得到以下输出:
14
the id:
有人可以指出我做错了什么或给我一些提示吗?谢谢!
如果您正在阅读的文件末尾有空行,该怎么办? – nakiya
即使在更正了代码遍历文件两次的代码之后。这是非常缓慢和不必要的。只需要有最后八个读取行的缓冲区,并且一旦您点击EOF,就只保留缓冲区的第一行。 –
我创建文件的方式,它永远不会:) – SantasNotReal