Mega Code Archive

 
Categories / C++ / Algorithm
 

Advance istream_iterator

/* The following code example is taken from the book  * "The C++ Standard Library - A Tutorial and Reference"  * by Nicolai M. Josuttis, Addison-Wesley, 1999  *  * (C) Copyright Nicolai M. Josuttis 1999.  * Permission to copy, use, modify, sell and distribute this software  * is granted provided this copyright notice appears in all copies.  * This software is provided "as is" without express or implied  * warranty, and with no claim as to its suitability for any purpose.  */ #include <iostream> #include <string> #include <algorithm> #include <iterator> using namespace std; int main() {     istream_iterator<string> cinPos(cin);     ostream_iterator<string> coutPos(cout," ");     /* while input is not at the end of the file      * - write every third string      */     while (cinPos != istream_iterator<string>()) {         // ignore the following two strings         advance (cinPos, 2);         // read and write the third string         if (cinPos != istream_iterator<string>()) {             *coutPos++ = *cinPos++;         }     }     cout << endl; } /*  Terminate batch job (Y/N)? n  */