【问题标题】:What does the g stand for in gcount, tellg and seekg?gcount、tellg 和 seekg 中的 g 代表什么?
【发布时间】:2019-05-05 14:56:57
【问题描述】:

gstd::iostreamgcounttellgseekg 成员中代表什么?还有pcounttellpseekp中的p

为什么不将它们称为 counttellseek

【问题讨论】:

  • 它只被称为普通seek(例如),那么你不能有单独的指针用于组合输入的输入和输出部分--输出流。
  • 顺便说一句:答案也解释了 p。编辑 p 的问题可能更有用。

标签: c++ iostream


【解决方案1】:

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

这就是为什么你有一个seekp(继承自basic_ostream)和一个seekg(继承自basic_istream)。

旁注:与 C++ 相比,C 语言只有一个这样的函数 fseek 用于两个指针;当从读切换到写时,有必要重新定位指针,反之亦然(参见,例如,this 答案)。为了避免这种情况,C++ 分别为读取和写入提供了单独的函数。

【讨论】:

    【解决方案2】:

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

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

    • tellg() 用于知道 get 指针在文件中的位置。

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

    • tellp() 用于知道 put 指针在文件中的位置。

    主要来源:QuoraGunjan B. Yadav 于 2017 年 12 月 1 日回答。

    【讨论】:

    • 为什么 C++ 标准的人将 API 命名为键盘具有每次击键成本。 ?
    • @Alexander :显然是为了避免人们通过按键获得报酬。聪明且面向业务的程序员自然而然地通过为标准库发明自己的类型和包装器来克服这个问题,这当然总是完美无缺并且没有任何缺点。
    • @Ajay 我喜欢!
    猜你喜欢
    • 2018-11-08
    • 1970-01-01
    • 2013-12-28
    • 2011-06-19
    • 1970-01-01
    • 2013-12-28
    • 2023-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多