我将C++ streambuf类用于编译器项目,并需要一种方便的方法来获取流中的当前位置。
有两个成员函数,streambuf::pubseekpos和streambuf::pubseekoff,用来修改这个位置,我对没有一个streambuf::pubgetpos成员函数(或类似的函数)来读取它感到非常困惑。
似乎有两种可能的解决办法:
streambuf::pubseekoff(0, ios_base::cur),它返回新的流位置。第二种选择似乎是有用的,但对于这样一项琐碎的任务,它效率低下,不美观。有更好的方法吗?
发布于 2013-03-20 13:55:37
streambuf没有一个单独的界面来读取这个位置。而istream和ostream do (分别为tellg和tellp )。
有趣的是,流使用你的选项2得到他们的位置,所以这是很好的。
https://stackoverflow.com/questions/15525041
复制相似问题