Name
fgets
Synopsis
Reads a string from a file
#include <stdio.h> char *fgets( char * restrictbuffer, intn, FILE * restrictfp);
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.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access