Что означает g в gcount, tellg и seekg?

Что означает g в gcount std::iostream gcount, tellg и seekg? И p в pcount, tellp и seekp?

Почему они не называются просто count, tell и seek?

Ответы

Ответ 1

В потоках, поддерживающих чтение и запись, у вас на самом деле есть две позиции: одна для чтения (т.е. "get" обозначается буквой "g"), а другая для записи (т.е. "put" обозначается "p").

И поэтому у вас есть seekp (унаследованный от basic_ostream) и seekg (унаследованный от basic_istream).

Замечание: язык C имеет - в отличие от C++ - только одна такая функция fseek для обоих указателей; Там необходимо переставить указатель при переключении с чтения на запись и наоборот (см., Например, этот ответ). Чтобы избежать этого, C++ предлагает отдельные функции для чтения и записи, соответственно.

Ответ 2

C++ предлагает два указателя при навигации по файлу: указатель get и указатель put. Первый используется для операций чтения, второй для операций записи.

  • seekg() используется для перемещения указателя г ET в нужное место относительно опорной точки.

  • tellg() используется, чтобы знать, где указатель g et находится в файле.

  • seekp() используется для перемещения указателя р ут в нужном месте относительно опорной точки.

  • tellp() используется, чтобы знать, где указатель p ut находится в файле.

Основной источник: Quora, ответ Gunjan B. Yadav 1 декабря 2017 года.