Mega Code Archive

 
Categories / C++ Tutorial / Development
 

Manipulator that skips until end-of-line

/* 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 <vector> #include <set> #include <algorithm> #include <limits> template <class charT, class traits> inline std::basic_istream<charT,traits>& ignoreLine (std::basic_istream<charT,traits>& strm) {     // skip until end-of-line     strm.ignore(std::numeric_limits<int>::max(),strm.widen('\n'));     // return stream for concatenation     return strm; } int main() {     int i;     std::cout << "read int and ignore rest of the line" << std::endl;     std::cin >> i;     // ignore the rest of the line     std::cin >> ignoreLine;     std::cout << "int: " << i << std::endl;     std::cout << "read int and ignore two lines" << std::endl;     std::cin >> i;     // ignore two lines     std::cin >> ignoreLine >> ignoreLine;     std::cout << "int: " << i << std::endl; } read int and ignore rest of the line 123 qwe int: 123 read int and ignore two lines 123wer asdf int: 123