basic_istream<> :: tellg()和basic_ostream<> :: tellp()之间的区别

时间:2013-01-25 12:47:22

标签: c++ filestream

我只是想知道为什么tellg()类中定义的成员函数basic_istream<>tellp()类中定义的basic_ostream<>具有不同的名称。这是因为basic_fstream<>来自basic_istream<>basic_ostream<>

2 个答案:

答案 0 :(得分:5)

tellg()获取get指针的位置,tellp()获取put指针的位置,其中一个是您阅读的位置,第二个是你在文件中写的地方。所以这两个函数做了不同的事情并返回不同的值。为什么你认为他们应该有相同的名字?

答案 1 :(得分:5)

你如何在双向流中区分它们, 比如std::fstreamstd::stringstream?允许流 维护输入和输出的单独指针:fstream 不,但是stringstream。所以你需要一个标志 表明你想要哪一个(如streambuf中的情况),或 你需要两个独立的功能。