<< Chapter < Page Chapter >> Page >

Assuming that we have entered John, Jean-Francois and Yoko as the 3 names, myfile.txt would contain:

myfile.txt
Name 1 [John ]
Name 2 [Jean-Franc]
Name 3 [Yoko ]

The fputc() function prototype is as follows.

int fputc(int character, FILE *fp);

The fputc() function writes a character to the file associated with fp. The character is written at the current position of the fp as indicated by the internal position indicator, which is then advanced one character

Return value: If there are no errors, the same character that has been written is returned.If an error occurs, EOF is returned and the error indicator is set.

Write the program that creates a file called alphabet.txt and writes ABCDEFGHIJKLMNOPQRSTUVWXYZ to it.

#include<stdio.h>int main () {FILE * fp; char c;fp = fopen ("alphabet.txt","w"); if (fp!=NULL){ for (c = 'A' ; c<= 'Z' ; c++) {fputc ((int) c , fp); }fclose (fp); }return 0; }
Got questions? Get instant answers now!

The fputs() function prototype is as follows.

int fputs(char *str,FILE *fp);

The fputs() function writes the string pointed to by str to the file associated with fp.

Return value: On success, a non-negative value is returned. On error, the function returns EOF. The null that terminates str is not written and it does not automatically append a carriage return/linefeed sequence.

Write the program allows to append a line to a file called myfile.txt each time it is run.

#include<stdio.h>int main () {FILE * fp; char name [50]; puts ("Please, enter a name: ");gets (name); fp = fopen ("myfile.txt","a");fputs (name,fp); fclose (fp);return 0; }
Got questions? Get instant answers now!

Read data from text files

When reading data from text files, C provides three functions: fscanf() , fgetc() , fgets() .

The fscanf() function prototype is as follows.

int fscanf(FILE *fp, char *format, ...);

This function reads data from the file specified by file pointer fp and stores them according to the parameter format into the locations pointed by the additional arguments. The additional arguments should point to already allocated objects of the type specified by their corresponding format tag within the format string.

Return value: On success, the function returns the number of items successfully read. This count can match the expected number of readings or be less -even zero- in the case of a matching failure. In the case of an input failure before any data could be successfully read, EOF is returned.

Read an integer number and a character from file associated with a file pointer fp and stores them to two variables a and c.

fscanf(fp, "%d %c",&a,&c);
Got questions? Get instant answers now!
#include<stdio.h>int main () {char str [80];float f; FILE * fp;fp = fopen ("myfile.txt","w+"); fprintf (fp, "%f %s", 3.1416, "PI");rewind (fp); fscanf (fp, "%f",&f); fscanf (fp, "%s", str);fclose (fp); printf ("I have read: %f and %s \n",f,str);return 0; }
Got questions? Get instant answers now!

This sample code creates a file called myfile.txt and writes a float number and a string to it. Then, the stream is rewinded and both values are read with fscanf. It finally produces an output similar to:

I have read: 3.141600 and PI

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