Thinking in C++: iostreams