Reads a string from a file
#include <stdio.h>
char *fgets ( char * restrict buffer , int n , FILE * restrict fp );
The fgets( ) function reads a sequence of up to n - 1 characters from the file referenced by the FILE pointer argument, and writes it to the buffer indicated by the char pointer argument, appending the string terminator character '\0'. If a newline character ('\n') is read, reading stops and the string written to the buffer is terminated after the newline character. The fgets( ) function returns the pointer to the string buffer if anything was written to it, or a null pointer if an error occurred or if the file position indicator was at the end of the file.
Example
FILE *titlefile;
char title[256];
int counter = 0;
if ((titlefile = fopen("titles.txt", "r")) == NULL)
perror( "Opening title file" );
else
{
while ( fgets( title, 256, titlefile ) != NULL )
{
title[ strlen(title) -1 ] = '\0'; // Trim off newline character.
printf( "%3d: \"%s\"\n", ++counter, title );
}
/* fgets( ) returned NULL: either EOF or an error occurred. */
if ( feof(titlefile) )
printf("Total: %d titles.\n", counter);
}
If the working directory contains an appropriate text file, the program produces output like this:
1: "The Amazing Maurice"
2: "La condition humaine"
3: "Die Eroberung der Maschinen"
Total: 3 titles.
See Also
fputs( ), puts( ), fgetc( ), fgetws( ), fputws( )
|