Función de biblioteca C - fgets ()

Descripción

La función de la biblioteca C char *fgets(char *str, int n, FILE *stream) lee una línea de la secuencia especificada y la almacena en la cadena apuntada por str. Se detiene cuando(n-1) se leen los caracteres, se lee el carácter de nueva línea o se llega al final del archivo, lo que ocurra primero.

Declaración

A continuación se muestra la declaración de la función fgets ().

char *fgets(char *str, int n, FILE *stream)

Parámetros

  • str - Este es el puntero a una matriz de caracteres donde se almacena la cadena leída.

  • n- Este es el número máximo de caracteres que se pueden leer (incluido el carácter nulo final). Por lo general, se usa la longitud de la matriz pasada como str.

  • stream - Este es el puntero a un objeto FILE que identifica la secuencia de donde se leen los caracteres.

Valor devuelto

Si tiene éxito, la función devuelve el mismo parámetro str. Si se encuentra el fin de archivo y no se han leído caracteres, el contenido de str permanece sin cambios y se devuelve un puntero nulo.

Si ocurre un error, se devuelve un puntero nulo.

Ejemplo

El siguiente ejemplo muestra el uso de la función fgets ().

#include <stdio.h>

int main () {
   FILE *fp;
   char str[60];

   /* opening file for reading */
   fp = fopen("file.txt" , "r");
   if(fp == NULL) {
      perror("Error opening file");
      return(-1);
   }
   if( fgets (str, 60, fp)!=NULL ) {
      /* writing content to stdout */
      puts(str);
   }
   fclose(fp);
   
   return(0);
}

Supongamos que tenemos un archivo de texto file.txt, que tiene el siguiente contenido. Este archivo se utilizará como entrada para nuestro programa de ejemplo:

We are in 2012

Ahora, compilemos y ejecutemos el programa anterior que producirá el siguiente resultado:

We are in 2012