virtual streampos seekoff(streamoff off, ios_base::seekdir way,
ios_base::openmode which = ios_base::in | ios_base::out);
The protected virtual member function endeavors to alter the current positions for the controlled streams. For an object
of class strstreambuf
, a stream position consists purely of a stream offset. Offset zero designates the first element of
the controlled sequence.
The new position is determined as follows:
way == ios_base::
beg
, the new position is the beginning of the stream plus off
. way == ios_base::
cur
, the new position is the current stream position plus off
. way == ios_base::
end
, the new position is the end of the stream plus off
. If which & ios_base::in
is nonzero and the input buffer exists, the function alters the next position to read in the
input buffer. If which & ios_base::out
is also nonzero, way != ios_base::cur
, and the output buffer exists, the
function also sets the next position to write to match the next position to read.
Otherwise, if which & ios_base::out
is nonzero and the output buffer exists, the function alters the next position to
write in the output buffer. Otherwise, the positioning operation fails. For a positioning operation to succeed, the
resulting stream position must lie within the controlled sequence.
If the function succeeds in altering the stream position(s), it returns the resultant stream position. Otherwise, it fails and returns an invalid stream position.