Função da biblioteca C - fgets ()

Descrição

A função da biblioteca C char *fgets(char *str, int n, FILE *stream) lê uma linha do fluxo especificado e a armazena na string apontada por str. Ele para quando(n-1) caracteres são lidos, o caractere de nova linha é lido ou o fim do arquivo é alcançado, o que ocorrer primeiro.

Declaração

A seguir está a declaração da função fgets ().

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

Parâmetros

  • str - Este é o ponteiro para uma matriz de caracteres onde a string lida é armazenada.

  • n- Este é o número máximo de caracteres a serem lidos (incluindo o caractere nulo final). Normalmente, o comprimento do array passado como str é usado.

  • stream - Este é o ponteiro para um objeto FILE que identifica o fluxo de onde os caracteres são lidos.

Valor de retorno

Em caso de sucesso, a função retorna o mesmo parâmetro str. Se End-of-File for encontrado e nenhum caractere tiver sido lido, o conteúdo de str permanece inalterado e um ponteiro nulo é retornado.

Se ocorrer um erro, um ponteiro nulo é retornado.

Exemplo

O exemplo a seguir mostra o uso da função 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);
}

Vamos supor que temos um arquivo de texto file.txt, que tem o seguinte conteúdo. Este arquivo será usado como uma entrada para nosso programa de exemplo -

We are in 2012

Agora, vamos compilar e executar o programa acima que produzirá o seguinte resultado -

We are in 2012