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