gpt4 book ai didi

c++ - 从c++中的txt文件中读取特定行

转载 作者:行者123 更新时间:2023-11-28 00:53:26 24 4
gpt4 key购买 nike

所以,我找到了我想要读取的文件的特定行,但我得到的内容不起作用:

    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:

有人可以指出我做错了什么或给我一些提示吗?谢谢!

最佳答案

record 流将在 std::count() 调用之后为 eof() 但代码从不 检查 std::getline() 的返回值,因此不知道它正在失败:始终检查读取操作的返回值。这意味着永远不会填充 str,因此在 "thid id: " 消息之后不会打印任何内容。

您需要重置流或重新打开它。

关于c++ - 从c++中的txt文件中读取特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12777920/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com