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