Namespaces
Variants
Actions

std::feof

From cppreference.com
< cpp‎ | io‎ | c
 
 
 
C-style I/O
Types and objects
Functions
File access
Direct input/output
Unformatted input/output
Formatted input
(C++11)(C++11)(C++11)    
(C++11)(C++11)(C++11)    
 
Defined in header <cstdio>
int feof( std::FILE * stream );

Checks if the end of the given file stream has been reached.

[edit] Parameters

stream - the file stream to check

[edit] Return value

Nonzero value if the end of the stream has been reached, otherwise 0.

[edit] Notes

This function only reports the stream state as reported 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 std::fgetc , which returned the last byte of a file, std::feof returns zero. The next std::fgetc fails and changes the stream state to end-of-file. Only then std::feof returns non-zero.

In typical usage, input stream processing stops on any error; feof and std::ferror are then used to distinguish between different error conditions.

[edit] Example

Run this code
#include <cstdio>
#include <cstdlib>
 
int main()
{
 int is_ok = EXIT_FAILURE ;
 FILE* fp = std::fopen ("/tmp/test.txt", "w+");
 if (!fp)
 {
 std::perror ("File opening failed");
 return is_ok;
 }
 
 int c; // Note: int, not char, required to handle EOF
 while ((c = std::fgetc (fp)) != EOF ) // Standard C I/O file reading loop
 std::putchar (c);
 
 if (std::ferror (fp))
 std::puts ("I/O error when reading");
 else if (std::feof(fp))
 {
 std::puts ("End of file reached successfully");
 is_ok = EXIT_SUCCESS ;
 }
 
 std::fclose (fp);
 return is_ok;
}

Output:

End of file reached successfully

[edit] See also

checks if end-of-file has been reached
(public member function of std::basic_ios<CharT,Traits>) [edit]
clears errors
(function) [edit]
displays a character string corresponding of the current error to stderr
(function) [edit]
checks for a file error
(function) [edit]
Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/c/feof&oldid=158667"

AltStyle によって変換されたページ (->オリジナル) /