Standard C++ Library Reference ISO/IEC (VERSION3)
offset. Offset zero designates the first element of the controlled sequence.
The new position is determined as follows:
If way == ios_base::beg, the new position is the beginning of the stream plus
off.
●
If way == ios_base::cur, the new position is the current stream position plus
off.
●
If 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 exist, 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 either or both stream positions, it returns the resultant stream
position. Otherwise, it fails and returns an invalid stream position.
strstreambuf::seekpos
virtual streampos seekpos(streampos sp,
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 by sp.
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 nonzero 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 either or both stream positions, it returns the resultant stream
position. Otherwise, it fails and returns an invalid stream position.