tellg() 和 tellp() 在 C++ 中是如何工作的?

How do tellg() & tellp() work in C++?

本文关键字:何工作 工作 tellp C++ tellg      更新时间:2023-10-16

为什么tellg()tellp()总是在一起?我们怎样才能把它们分开呢?

它们没有

一个指示"get"光标在输入流中的位置;另一个指示"放置"光标在输出流中的位置。

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

对于初学者来说,他们是不同类的成员:tellgstd::istream的成员,并且tellpstd::ostream。他们之所以有不同的名字是因为有两个类(例如std::iostreamstd::istreamstd::ostream,并且功能可以报告不同的值:实际的std::streambuf类型可以保持同步的读取和写入位置(如std::filebuf)或将它们分开(就像std::stringbuf一样)。

一个用于输入流,另一个用于输出流。

http://en.cppreference.com/w/cpp/io/basic_istream/tellg输入流位置

http://en.cppreference.com/w/cpp/io/basic_ostream/tellp输出流位置