A função fgets(), disponível no header cstdio ou stdio.h, é usada para ler caracteres de um arquivo e armazená-los em um vetor de caracteres. Esta função recebe três argumentos. Veja:
char *fgets(char *buffer, int num, FILE *file);
buffer é um ponteiro para o vetor que receberá o conteúdo lido. num é o número de caracteres que será lido (veja que o conteúdo será lido até alcançar este número, ou um caractere de quebra de linha for encontrado, ou o marcador de fim de arquivo EOF for encontrado, o que vier primeiro). file é um ponteiro para o arquivo que foi aberto.
No exemplo abaixo usamos um laço while() para ler o conteúdo até que o final de arquivo EOF seja encontrado. Desta forma, como sabemos que cada linha no arquivo termina com um marcador de fim de linha, fica fácil ler cada linha. É claro que se a linha sendo lida for maior que o tamanho do buffer, o efeito não será conseguido. Observe ainda que cada linha lida contém o caractere de fim de linha anexado a ela:
----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
const int TAM_BUFFER = 255; // quantidade de caracteres
// a serem lidos no buffer de cada vez
int main(int argc, char *argv[])
{
FILE *arquivo = fopen("c:\\testes.txt", "r");
char buffer[TAM_BUFFER];
// testa se o arquivo foi aberto com sucesso
if(arquivo != NULL){
// vamos usar um laço para ler o conteúdo do arquivo
// e armazenar no buffer
while(fgets(buffer, TAM_BUFFER, arquivo)){
printf("%s\n", buffer);
}
fclose(arquivo); // libera o ponteiro para o arquivo
}
else{
printf("Nao foi possivel abrir o arquivo.");
}
printf("\n\n");
system("PAUSE");
return 0;
}
|