default implementation of uflow() is to call underflow() and then increment the read pointer.
The default implementation of underflow() in the base class basic_streambuf is to return EOF.
This means that it is impossible to read characters with the default implementation.
The function sgetn() is used for reading multiple characters at once. This function