我只是想知道为什么
tellg()
类中定义的成员函数 basic_istream<>
和 tellp()
类中定义的 basic_ostream<>
有不同的名称。是因为 basic_fstream<>
源自 basic_istream<>
和 basic_ostream<>
吗?
tellg()
获取get
指针的位置,tellp()
获取put
指针的位置,其中之一是您在文件中读取的位置,第二个是您在文件中写入的位置。所以这两个函数做不同的事情并返回不同的值。你为什么认为他们应该有相同的名字?
如何在双向流中区分它们, 像
std::fstream
或std::stringstream
? 允许流
为输入和输出维护单独的指针:fstream
不会,但 stringstream
会。 所以你需要一个标志
指出您想要哪一个(如 streambuf
中的情况),或
你需要两个独立的功能。