我只是想知道为什么在类中定义和在类中定义的成员函数tellg()有basic_istream<>不同tellp()的basic_ostream<>名称。那是因为basic_fstream<>源自basic_istream<>andbasic_ostream<>吗?
6046 次
2 回答
8
tellg()获取指针的位置get并tellp()获取指针的位置put,其中一个是您读取的位置,第二个是您在文件中写入的位置。所以这两个函数做不同的事情并返回不同的值。为什么你认为他们应该有相同的名字?
于 2013-01-25T12:51:36.113 回答
7
你会如何在双向流中区分它们,比如std::fstreamor std::stringstream?流被允许为输入和输出维护单独的指针:fstream
没有,但是stringstream有。因此,您需要一个标志来指示您想要哪一个(如 中的情况streambuf),或者您需要两个单独的函数。
于 2013-01-25T13:48:30.687 回答