tellg()& tellp()在C ++中工作?

时间:2014-04-24 09:35:17

标签: c++ iostream

为什么tellg()tellp()总是聚在一起?我们如何将它们彼此分开?

3 个答案:

答案 0 :(得分:5)

他们没有。

一个表示“get”光标在输入流中的位置;另一个表示“put”光标在输出流中的位置。

它们相似但没有内在联系,所以你问题的前提从根本上是有缺陷的。

答案 1 :(得分:4)

对于初学者来说,他们是不同班级的成员:tellgstd::istream的成员,tellp是其成员 std::ostream。他们有不同名字的原因是因为 有两个派生的类(例如std::iostreamstd::istreamstd::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 输出流位置