#### 12.10.1 What Unreading Means

Here is a pictorial explanation of unreading. Suppose you have a stream reading a file that contains just six characters, the letters ‘`foobar`’. Suppose you have read three characters so far. The situation looks like this:

         f  o  o  b  a  r
         	 ^

so the next input character will be ‘`b`’.

If instead of reading ‘`b`’ you unread the letter ‘`o`’, you get a situation like this:

         f  o  o  b  a  r
         	 |
               o--
               ^

so that the next input characters will be ‘`o`’ and ‘`b`’.

If you unread ‘`9`’ instead of ‘`o`’, you get this situation:

         f  o  o  b  a  r
         	 |
               9--
               ^

so that the next input characters will be ‘`9`’ and ‘`b`’.