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

NAME
     std::basic_ios::eof - std::basic_ios::eof

Synopsis
	bool eof() const;

	Returns  true if the associated stream has reached end-of-file. Specifi-
     cally, returns
	true if eofbit is set in rdstate().

	See ios_base::iostate for the list of conditions that set eofbit.

Parameters
	(none)

Return value
	true if an end-of-file has occurred, false otherwise.

Notes
	This function only reports the stream state as set by  the  most  recent
     I/O operation;
	it does not examine the associated data source. For example, if the most
     recent I/O
	was a get() which returned the last byte of a file, eof() returns false.
     The next
	get()  fails  to read anything and sets the eofbit. Only then does eof()
     return true.

	In typical usage, input stream processing stops on any error. eof()  and
     fail() can
	then be used to distinguish between different error conditions.

Example
     // Run this code

      #include <cstdlib>
      #include <fstream>
      #include <iostream>

      int main()
      {
	  std::ifstream file("test.txt");
	  if (!file) // operator! is used here
	  {
	      std::cout << "File opening failed\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 << "I/O error while reading\n";
	  else if (file.eof())
	      std::cout << "End of file reached successfully\n";
	  else if (file.fail())
	      std::cout << "Non-integer data encountered\n";
      }

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 op-
     erator!
	     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

	feof checks for the end-of-file
	     (function)

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

home | help