0

我有将整个文件读入缓冲区的代码。出于我的目的,我可以保证这样的文件不会超过 10MB 的大小……足够小,以至于我们不必担心在进行全文件读取时会出现抖动或实际性能问题。

此外,我目前正在使用生成的整个文件缓冲区上的 isstrstream 一次提取一行。这很好用,并且允许我一次使用一行底层字符串数据。

但是,我现在需要看看我是否可以保存当前的 isstrstream 位置,然后“跳到那里”......即复制一个 isstrsteam 并通常将其视为值对象。这是否允许/保证是对 isstrstreams 的合理使用?

如果重要的话,我正在使用 VS2010。

另外,您将如何查找此类问题的答案(stackoverflow 除外)?做一些谷歌搜索告诉我有关 isstrsteam 的各个方法的大量随机数据点,并导致有关相关类的各种信息 - 基类或兄弟或子类。但回答上述问题远不那么清楚(对我来说)。

4

1 回答 1

0

可以使用成员 istream<>::tellg() 和 istream<>::seekg() 来保存/恢复流位置,类似于 fgetpos 和 fsetpos。

istrstream 和 istringstream 一样支持这些方法。

于 2011-11-18T21:01:29.823 回答