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