Что означает g в gcount, tellg и seekg? - PullRequest
0 голосов
/ 04 декабря 2018

Что означает g в членах std::iostream * gcount, tellg и seekgp в pcount, tellp и seekp?

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

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

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

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

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

0 голосов
/ 04 декабря 2018

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

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

  • tellg() используется для определения местоположения указателя g et в файле.

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

  • tellp() isраньше знал, где в файле находится указатель p ut.

Основной источник: Quora , ответ Гунджан Б. Ядав 1 декабря 2017 года.

...