Object-Oriented I/O Using C++ Iostreams by Thomas Hamilton & Tracey Hughes