Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

C programming/stdio.h/feof

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

feof is a C standard library function declared in the header stdio.h.http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf ISO/IEC 9899:1999 specification p. 305, § 7.19.10.2 Its primary purpose is to distinguish between cases where a stream operation has reached the end of a file and cases where the EOF ("end of file") error code has been returned as a generic error indicator, without the end of the file's actually having been reached. Function prototype The function is declared as follows: int feof(FILE *fp); It takes one argument: a pointer to the FILE structure of the stream to check. Return value The return value of the function is an integer. A nonzero value signifies that the end of the file has been reached; a value of zero signifies that it has not. Example code #include <stdio.h> int main() { FILE *fp = fopen("file.txt", "r"); int c; c = getc(fp); while (c != EOF) { /* Echo the file to stdout */ putchar(c); c = getc(fp); } if (feof(fp)) puts("End of file was reached."); else if (ferror(fp)) puts("There was an error reading from the stream."); else /*NOTREACHED*/ puts("getc() failed in a non-conforming way."); fclose(fp); return 0; } Pitfalls A common misuse of the function is trying to use feof "preemptively". However, this doesn't work correctly, as feof is only set for a descriptor after a reading function has failed. References External links C++ reference for std::feof deep