<< Chapter < Page Chapter >> Page >

Feof() function

int feof(FILE *fp);

This function check if End-of-File indicator associated with fp is set

Return value: A non-zero value is returned in the case that the End-of-File indicator associated with the fp is set. Otherwise, a zero value is returned.

Create a text file called fscanf.txt in Notepad with this content:

0 1 2 3 4 5 6 7 8 910 11 12 13

Remember how scanf stops reading input when it encounters a space, line break or tab character? fscanf is just the same. So if all goes to plan, this example should open the file, read all the numbers and print them out:

#include<stdio.h>int main() { FILE *fp;int numbers[30];/* make sure it is large enough to hold all the data! */ int i,j;fp = fopen("fscanf.txt", "r"); if(fp==NULL) {printf("Error: can't open file.\n"); return 1;} else {printf("File opened successfully.\n"); i = 0 ;while(!feof(fp)) { /* loop through and store the numbers into the array */fscanf(fp, "%d",&numbers[i]);i++; }printf("Number of numbers read: %d\n\n", i);printf("The numbers are:\n"); for(j=0 ; j<i ; j++) { /* now print them out one by one */ printf("%d\n", numbers[j]); }fclose(fp); return 0;} }
Got questions? Get instant answers now!

Fflush() function

Same as scanf() , before using fscanf() to read the character or string from the file, we need use fflush() .The fflush() function prototype is as follows.

int fflush(FILE *fp)

If the given file that specified by fp was open for writing and the last I/O operation was an output operation, any unwritten data in the output buffer is written to the file. If the file was open for reading, the behavior depends on the specific implementation. In some implementations this causes the input buffer to be cleared. If the argument is a null pointer, all open files are flushed. The files remains open after this call. When a file is closed, either because of a call to fclose or because the program terminates, all the buffers associated with it are automatically flushed.

Return Value: A zero value indicates success. If an error occurs, EOF is returned and the error indicator is set (see feof).

Fgetc() function

The fgetc() function prototype is as follows.

int fgetc(FILE *fp);

This function returns the character currently pointed by the internal file position indicator of the specified fp. The internal file position indicator is then advanced by one character to point to the next character.

Return value: The character read is returned as an int value. If the EOF is reached or a reading error happens, the function returns EOF and the corresponding error or eof indicator is set. You can use either ferror or feof to determine whether an error happened or the EOF was reached.

Write the program reads an existing file called myfile.txt character by character and uses the n variable to count how many dollar characters ($) does the file contain.

#include<stdio.h>int main () {FILE * fp; int c;int n = 0; fp=fopen ("myfile.txt","r");if (fp==NULL) printf("Error opening file"); else{ do {c = fgetc (fp); if (c == '$') n++;} while (c != EOF); fclose (fp);printf ("File contains %d$.\n",n); }return 0; }
Got questions? Get instant answers now!

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Introduction to computer science. OpenStax CNX. Jul 29, 2009 Download for free at http://cnx.org/content/col10776/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Introduction to computer science' conversation and receive update notifications?

Ask