【发布时间】:2013-01-25 12:47:22
【问题描述】:
我只是想知道为什么basic_istream<> 类中定义的成员函数tellg() 和basic_ostream<> 类中定义的tellp() 具有不同的名称。那是因为basic_fstream<> 是从basic_istream<> 和basic_ostream<> 派生的吗?
【问题讨论】:
标签: c++ filestream
我只是想知道为什么basic_istream<> 类中定义的成员函数tellg() 和basic_ostream<> 类中定义的tellp() 具有不同的名称。那是因为basic_fstream<> 是从basic_istream<> 和basic_ostream<> 派生的吗?
【问题讨论】:
标签: c++ filestream
tellg() 获取get 指针的位置,tellp() 获取put 指针的位置,其中之一是您在文件中读取的位置,第二个是您在文件中写入的位置。所以这两个函数做不同的事情并返回不同的值。为什么你认为他们应该有相同的名字?
【讨论】:
std::stringstream。
seekp 和seekg,你确定吗?
你如何在双向流中区分它们,
喜欢std::fstream 或std::stringstream?允许流
为输入和输出维护单独的指针:fstream
没有,但stringstream 有。所以你需要一个标志来
指出您想要哪一个(如streambuf 中的情况),或
你需要两个独立的函数。
【讨论】:
fstream 不维护单独的指针?