Mega Code Archive

 
Categories / C++ Tutorial / Operator Overloading
 

Ignore

/* 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 <limits> // Ignore: manipulator that ignores N lines class Ignore {   public:     int num;     Ignore(int n) : num(n) {     } }; // convenience function Ignore ignore(int n) {     return Ignore(n); } std::istream& operator >> (std::istream& strm, const Ignore& manip) {     for (int i=0; i<manip.num; ++i) {         strm.ignore(std::numeric_limits<int>::max(),'\n');     }     return strm; } int main() {     char c;     std::cout << "ignore two lines and print frist character following them\n";     std::cin >> ignore(2) >> c;     std::cout << "c: " << c << std::endl; } ignore two lines and print frist character following them a v a c: a