什么是摹立场在std::iostream
的gcount
,tellg
和seekg
会员?而p的pcount
,tellp
和seekp
?
他们为什么不只是叫count
,tell
和seek
?
什么是摹立场在std::iostream
的gcount
,tellg
和seekg
会员?而p的pcount
,tellp
和seekp
?
他们为什么不只是叫count
,tell
和seek
?
Answers:
在同时支持读取和写入的流中,您实际上有两个位置,一个位置用于读取(即用“ g”表示的“ get”),另一个位置用于写入(即用“ p”表示的“ put”)。
这就是为什么您有一个seekp
(继承自basic_ostream
)和一个seekg
(继承自basic_istream
)的原因。
旁注:与C ++相比,C语言fseek
对于两个指针仅具有一个这样的函数;从读取切换为写入时,指针必须重新放置,反之亦然(例如,参见此答案)。为了避免这种情况,C ++为读取和写入分别提供了单独的功能。
C ++在浏览文件时提供了两个指针:get指针和put指针。第一个用于读取操作,第二个用于写入操作。
seekg()
用于将移动克等指针到期望的位置相对于一个参考点。
tellg()
用于了解g指针在文件中的位置。
seekp()
用于将移动p UT指针到期望的位置相对于一个参考点。
tellp()
是用于了解其中p UT指针是在文件中。
主要来源:Quora,Gunjan B.Yadav于2017年12月1日回答。
seek
(例如)纯文本,因此您无法为组合的输入和输出流的输入和输出部分使用单独的指针。