提问人:JDoe4444 提问时间:4/20/2018 更新时间:4/20/2018 访问量:935
在不移动文件位置的情况下从文件中读取下一个字符串的快速方法
Quick way to read the next string from a file without moving the position of the file
问:
我想知道在不增加光标在文件中的位置的情况下读取文件中下一个字符串的最佳方法是什么(以检查它是否与字符串匹配)。所以基本上我想在不读取下一个字符串的情况下阅读下一个字符串。
答:
2赞
Andreas H.
4/20/2018
#1
只要使用相同的 ifstream 对象,就无法在不更改光标的情况下读取下一个字符串,但可以保存并恢复位置:
auto p = stream.tellg();
// do what ever read you like
stream.seekg(p, std::ios_base::beg);
如果读取失败,则可能需要在调用 seekg() 之前清除错误标志。
评论
0赞
JDoe4444
4/20/2018
谢谢,这是我使用的解决方案,但我很好奇是否有其他方法可以解决这个问题。再次感谢你。
0赞
Andreas H.
4/20/2018
您可以使用 peek() 从流中获取下一项,而无需更改光标。如果这返回“错误”字符,则无需告诉/阅读/查找。也许这会带来更好的性能。
评论
peek()