Unlike setp(), setg() takes three arguments in order to be able to define the room for storing
characters that are put back into the stream. Thus, when the pointers to the read buffer are being set
up, it is reasonable to have at least one character that is already read but still stored in the buffer.