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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::basic_ios::good - std::basic_ios::good

Synopsis
	  bool good() const;

	  Returns  true	 if  the  most recent I/O operation on the stream com-
       pleted successfully.
	  Specifically,	returns	result of rdstate() == 0.

	  See ios_base::iostate	for the	list of	conditions that	set the	stream
       status bits.

Parameters
	  (none)

Return value
	  true if the stream error flags are all false,	false otherwise.

Example
       // Run this code

	#include <iostream>
	#include <fstream>
	#include <cstdlib>
	int main()
	{
	    const char*	fname =	"/tmp/test.txt";
	    std::ofstream ofile{fname};
	    ofile << "10 " << "11 " << "12 " <<	"non-int";
	    ofile.close();

	    std::ifstream file{fname};
	    if (!file.good())
	    {
		std::cout << "#1. Opening file test.txt	failed - "
			     "one of the error flags is	true\n";
		return EXIT_FAILURE;
	    }

	    // typical C++ I/O loop uses the return value of the I/O function
	    // as the loop controlling condition, operator bool() is used here
	    for	(int n;	file >>	n; ) {
		std::cout << n << ' ';
	    }
	    std::cout << '\n';

	    if (file.bad())
	    {
		std::cout << "#2. I/O error while reading - badbit is true\n";
		return EXIT_FAILURE;
	    }
	    else if (file.eof()) {
		std::cout << "#3. End of file reached successfully - eofbit is
       true\n"
		    "This is fine even though file.good() is false\n";
	    }
	    else if (file.fail()) {
		std::cout << "#4. Non-integer data encountered	-  failbit  is
       true\n";
	    }
	}

Possible output:
	10 11 12
	#4. Non-integer	data encountered - failbit is true

See also
	  The  following table shows the value of basic_ios accessors (good(),
       fail(), etc.)
	  for all possible combinations	of ios_base::iostate flags:

	       ios_base::iostate flags basic_ios accessors
	       eofbit  failbit	badbit good() fail() bad() eof() operator bool
       operator!
	       false	false	  false	  true	  false	  false	  false	  true
       false
	       false	 false	   true	   false   true	   true	  false	 false
       true
	       false	true	  false	  false	  true	  false	 false	 false
       true
	       false	 true	   true	   false   true	   true	  false	 false
       true
	       true	false	  false	  false	  false	  false	  true	  true
       false
	       true	 false	   true	   false   true	   true	  true	 false
       true
	       true	true	  false	  false	  true	  false	 true	 false
       true
	       true	 true	   true	   false   true	   true	  true	 false
       true

http://cppreference.com		  2022.07.31	       std::basic_ios::good(3)

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

home | help