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

问题描述 投票:0回答:2

我只是想知道为什么

tellg()
类中定义的成员函数
basic_istream<>
tellp()
类中定义的
basic_ostream<>
有不同的名称。是因为
basic_fstream<>
源自
basic_istream<>
basic_ostream<>
吗?

c++ filestream
2个回答
8
投票

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


7
投票

如何在双向流中区分它们, 像

std::fstream
std::stringstream
? 允许流 为输入和输出维护单独的指针:
fstream
不会,但
stringstream
会。 所以你需要一个标志 指出您想要哪一个(如
streambuf
中的情况),或 你需要两个独立的功能。

© www.soinside.com 2019 - 2024. All rights reserved.