В потоках, поддерживающих как чтение, так и запись, у вас фактически есть две позиции, одна для чтения (то есть «get», обозначаемая «g») и одна для записи (то есть «put», обозначаемый «p»).
И именно поэтому у вас есть seekp
(унаследовано от basic_ostream
) и seekg
(унаследовано от basic_istream
).
Примечание: язык C имеет - в отличие отна C ++ - только одна такая функция fseek
для обоих указателей;Там необходимо переместить указатель при переключении с чтения на запись и наоборот (см., Например, этот ответ).Чтобы избежать этого, C ++ предлагает отдельные функции для чтения и записи соответственно.