gpt4 book ai didi

c++ - 返回文本文件 C++ 上的一行

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:16:08 26 4
gpt4 key购买 nike

我的程序使用以下命令从文本文件中读取一行:

std::ifstream myReadFile("route.txt");
getline(myReadFile, line)

如果它找到了我正在寻找的东西(标签),它就会将该行存储在一个临时字符串中。在找到其他标签之前,我不想继续此操作,如果我找到其他标签,我希望能够返回到上一行,以便程序再次读取其他标签并执行其他操作。

我一直在研究 putback() 和 unget() 我对如何使用它们以及它们是否可能是正确答案感到困惑。

最佳答案

最好考虑一种一次性算法,该算法将第一个标记可能需要的内容存储在内存中,而无需返回。

如果这不可能,您可以“添加书签”流位置并稍后使用 tellg() 检索它和 seekg() :

streampos oldpos = myReadFile.tellg();  // stores the position
....
myReadFile.seekg (oldpos); // get back to the position

如果您阅读递归嵌入的标签(例如 html),您甚至可以使用 stack<streampos> 在阅读时插入和弹出位置。但是,请注意,此类前向/后向访问会降低性能。

你提到 putback() unget() , 但这些仅限于一个字符,似乎不适合您的 getline()方法。

关于c++ - 返回文本文件 C++ 上的一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27331272/

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