g在gcount,tellg和seekg中代表什么?

时间:2018-12-04 08:28:58

标签: c++ iostream

std::iostream的{​​{1}},gcounttellg成员中 g 代表什么?还有seekgpcounttellp中的 p

为什么他们不叫seekpcounttell

2 个答案:

答案 0 :(得分:76)

在同时支持读取和写入的流中,您实际上有两个位置,一个位置用于读取(即,用“ g”表示的“ get”),另一个位置用于写入(即用“ p”表示的“ put”)。 >

这就是为什么您拥有seekp(继承自basic_ostream)和seekg(继承自basic_istream)的原因。

侧面说明:与C ++相比,语言C仅对两个指针具有一个这样的函数fseek;从读取切换为写入时,指针必须重新放置,反之亦然(例如,this答案)。为了避免这种情况,C ++为读取和写入分别提供了单独的功能。

答案 1 :(得分:47)

C ++在导航文件时提供了两个指针: get 指针和 put 指针。第一个用于读取操作,第二个用于写入操作。

  
      
  • seekg()用于将 g et指针移动到相对于参考点的所需位置。

  •   
  • tellg()用于了解 g et指针在文件中的位置。

  •   
  • seekp()用于将 p ut指针相对于参考点移动到所需位置。

  •   
  • tellp()用于了解 p ut指针在文件中的位置。

  •   

主要来源:Quora,由 Gunjan B. Yadav 于2017年12月1日回答。