//: C04:StreambufIterator.cpp // From Thinking in C++, 2nd Edition // Available at http://www.BruceEckel.com // (c) Bruce Eckel 2000 // Copyright notice in Copyright.txt // istreambuf_iterator & ostreambuf_iterator #include "../require.h" #include #include #include #include using namespace std; int main() { ifstream in("StreambufIterator.cpp"); assure(in, "StreambufIterator.cpp"); // Exact representation of stream: istreambuf_iterator isb(in), end; ostreambuf_iterator osb(cout); while(isb != end) *osb++ = *isb++; // Copy 'in' to cout cout << endl; ifstream in2("StreambufIterator.cpp"); // Strips white space: istream_iterator is(in2), end2; ostream_iterator os(cout); while(is != end2) *os++ = *is++; cout << endl; } ///:~