#### 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`’.