home | help
std::basic_ios::clear(3)       C++ Standard Libary	std::basic_ios::clear(3)

NAME
     std::basic_ios::clear - std::basic_ios::clear

Synopsis
	void clear( std::ios_base::iostate state = std::ios_base::goodbit );

	Sets  the stream error state flags by assigning them the value of state.
     By default,
	assigns std::ios_base::goodbit which has the effect of clearing all  er-
     ror state
	flags.

	If  rdbuf()  is  a  null  pointer  (i.e.  there  is no associated stream
     buffer), then state
	| std::ios_base::badbit is assigned.

Parameters
		new error state flags setting. It can be a  combination  of  the
     following
		constants:

	state - Constant Explanation
		goodbit  no error
		badbit	 irrecoverable stream error
		failbit  input/output operation failed (formatting or extraction
     error)
		eofbit	 associated input sequence has reached end-of-file

Return value
	(none)

Exceptions
	If  the  new error state includes a bit that is also included in the ex-
     ceptions()
	mask, throws an exception of type failure.

Example
	clear() without arguments can be used to unset the failbit  after  unex-
     pected input;
	for std::cin.putback(c) see ungetc.

     // Run this code

      #include <iostream>
      #include <string>

      int main()
      {
	  for (char c : {'\n', '4', '1', '.', '3', '\n', 'Z', 'Y', 'X'})
	      std::cin.putback(c);  //	emulate  user's input (not portable: see
     ungetc Notes)

	  double n;
	  while (std::cout << "Please, enter a number: " && !(std::cin >> n))
	  {
	      std::cin.clear();
	      std::string line;
	      std::getline(std::cin, line);
	      std::cout << line << "\nI am sorry, but '" << line << "' is not  a
     number\n";
	  }
	  std::cout << n << "\nThank you for entering the number " << n << '\n';
      }

Output:
      Please, enter a number: XYZ
      I am sorry, but 'XYZ' is not a number
      Please, enter a number: 3.14
      Thank you for entering the number 3.14

	Defect reports

	The  following	behavior-changing  defect  reports were applied retroac-
     tively to
	previously published C++ standards.

	  DR	Applied to	       Behavior as  published		    Cor-
     rect behavior
			   an excption would be thrown if the current
	LWG  412 C++98	    error state 				  checks
     the new
			   includes a bit that is also included in  the    error
     state instead
			   exceptions() mask

See also
	setstate sets state flags
		 (public member function)
	rdstate  returns state flags
		 (public member function)

http://cppreference.com 	   2024.06.10		std::basic_ios::clear(3)

home | help