Что означает 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 года.