fgets Function

Get a string from a stream.

Include

<stdio.h>

Prototype

char *fgets(char *s, int n, FILE *stream);

Arguments

s pointer to the storage string
n maximum number of characters to read
stream pointer to the open stream

Return Value

Returns a pointer to the string s if successful; otherwise, returns a null pointer.

Remarks

The function reads characters from the input stream and stores them into the string pointed to by s until it has read n-1 characters, stores a newline character or sets the end-of-file or error indicators. If any characters were stored, a null character is stored immediately after the last read character in the next element of the array. If fgets sets the error indicator, the array contents are indeterminate.

Example

#include <stdio.h> /* for fgets, printf, */
                   /* fopen, fclose,     */
                   /* FILE, NULL         */
#define MAX 50

int main(void)
{
  FILE *buf;
  char s[MAX];

  if ((buf = fopen("afile.txt", "r")) == NULL)
    printf("Cannot open afile.txt\n");
  else
  {
    while (fgets(s, MAX, buf) != NULL)
    {
      printf("%s|", s);
    }
    fclose(buf);
  }
}

Example Input

Contents of afile.txt (used as input):

Short
Longer string

Example Output

Short
|Longer string
|