Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::basic_istream::ignore(3) C++ Standard Libarystd::basic_istream::ignore(3)

NAME
       std::basic_istream::ignore - std::basic_istream::ignore

Synopsis
	  basic_istream&  ignore(  std::streamsize count = 1, int_type delim =
       Traits::eof()
	  );

	  Extracts and discards	characters from	the input stream until and in-
       cluding delim.

	  ignore behaves as an	UnformattedInputFunction.  After  constructing
       and checking the
	  sentry  object,  it extracts characters from the stream and discards
       them until any of
	  the following	conditions occurs:

	    * count characters were extracted. This test is  disabled  in  the
       special case when
	      count equals std::numeric_limits<std::streamsize>::max()

	    *  end  of	file conditions	occurs in the input sequence, in which
       case the	function
	      calls setstate(eofbit)

	    * the next available character c in	the input sequence  is	delim,
       as determined by
	      Traits::eq_int_type(Traits::to_int_type(c),  delim).  The	delim-
       iter character is
	      extracted	and discarded. This  test  is  disabled	 if  delim  is
       Traits::eof()

Parameters
	  count	- number of characters to extract
	  delim	 -  delimiting character to stop the extraction	at. It is also
       extracted.

Return value
	  *this

Exceptions
	  failure if an	error occurred (the error state	flag is	 not  goodbit)
       and exceptions()
	  is set to throw for that state.

	  If  an internal operation throws an exception, it is caught and bad-
       bit is set. If
	  exceptions() is set for badbit, the exception	is rethrown.

Example
	  The following	example	uses ignore to skip over non-numeric input:

       // Run this code

	#include <iostream>
	#include <sstream>
	#include <limits>

	int main()
	{
	    std::istringstream input("1\n"
				     "some non-numeric input\n"
				     "2\n");
	    for(;;) {
		int n;
		input >> n;

		if (input.eof()	|| input.bad())	{
		    break;
		} else if (input.fail()) {
		    input.clear(); // unset failbit
		    input.ignore(std::numeric_limits<std::streamsize>::max(),
       '\n'); // skip bad input
		} else {
		    std::cout << n << '\n';
		}
	    }
	}

Output:
	1
	2

See also
	  get	  extracts characters
		  (public member function)
	  getline extracts characters until the	given character	is found
		  (public member function)

http://cppreference.com		  2022.07.31	 std::basic_istream::ignore(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::wistream::ignore&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help