home *** CD-ROM | disk | FTP | other *** search
- //: C20:StreambufIterator.cpp
- // From Thinking in C++, 2nd Edition
- // Available at http://www.BruceEckel.com
- // (c) Bruce Eckel 1999
- // Copyright notice in Copyright.txt
- // istreambuf_iterator & ostreambuf_iterator
- #include "../require.h"
- #include <iostream>
- #include <fstream>
- #include <iterator>
- #include <algorithm>
- using namespace std;
-
- int main() {
- ifstream in("StreambufIterator.cpp");
- assure(in, "StreambufIterator.cpp");
- // Exact representation of stream:
- istreambuf_iterator<char> isb(in), end;
- ostreambuf_iterator<char> osb(cout);
- while(isb != end)
- *osb++ = *isb++; // Copy 'in' to cout
- cout << endl;
- ifstream in2("StreambufIterator.cpp");
- // Strips white space:
- istream_iterator<char> is(in2), end2;
- ostream_iterator<char> os(cout);
- while(is != end2)
- *os++ = *is++;
- cout << endl;
- } ///:~
-