为什么tellg()
和tellp()
总是聚在一起?我们如何将它们彼此分开?
答案 0 :(得分:5)
他们没有。
一个表示“get”光标在输入流中的位置;另一个表示“put”光标在输出流中的位置。
它们相似但没有内在联系,所以你问题的前提从根本上是有缺陷的。
答案 1 :(得分:4)
对于初学者来说,他们是不同班级的成员:tellg
是
std::istream
的成员,tellp
是其成员
std::ostream
。他们有不同名字的原因是因为
有两个派生的类(例如std::iostream
)
std::istream
和std::ostream
,功能可能会报告
不同的值:实际的std::streambuf
类型可以维护
读取和写入位置同步(如std::filebuf
)或
保持它们分开(std::stringbuf
)。
答案 2 :(得分:2)
一个用于输入流,另一个用于输出流。
http://en.cppreference.com/w/cpp/io/basic_istream/tellg 输入流位置
http://en.cppreference.com/w/cpp/io/basic_ostream/tellp 输出流位置