流但是得到流



我在编译器项目中使用c++ streambuf类,需要一种方便的方法来获取流中的当前位置。

有两个成员函数,streambuf::pubseekposstreambuf::pubseekoff,来修改位置,我对没有streambuf::pubgetpos成员函数(或类似的东西)来读取它感到非常困惑。

似乎有两种可能的解决方法:

  1. 我可以保存当前位置在一个单独的变量和修改每当我从流中读取字符时,它都会手动执行。

  2. 我可以调用streambuf::pubseekoff(0, ios_base::cur),它返回

对于这样一个琐碎的任务,第二个选项似乎是可用的,但效率低下且不美观。有更好的方法吗?

streambuf没有单独的读取位置的接口。然而,istreamostream(分别为tellgtellp)可以。

有趣的是,流使用选项2来获取它们的位置,所以这很好。

相关内容

  • 没有找到相关文章

最新更新