virtual int underflow();
The protected virtual member function endeavors to extract the current element c from the input buffer, then advance
the current stream position, and return the element as (int)(unsigned char)c. It can do so in only one way: If a
read position is available, it takes c as the element stored in the read position and advances the next pointer for the
input buffer.
If the function cannot succeed, it returns EOF. Otherwise, it returns the current element in the input stream, converted as
described above.