por
Marshall Brain - traduzido por HowStuffWorks Brasil
Arquivos de texto: lendo
Para ler um arquivo, abra-o com o modo r. Em geral, não é uma boa idéia usar
fscanf para leitura: a menos que o arquivo esteja perfeitamente formatado, fscanf não o manipulará corretamente. Em vez disso, use
fgets para ler cada linha e então analisar gramaticalmente as partes necessárias.
O seguinte código demonstra o processo de leitura de um arquivo e o descarregamento de seu conteúdo na tela:
#include <stdio.h>
int main()
{
FILE *f;
char s[1000];
f=fopen("infile","r");
if (!f)
return 1;
while (fgets(s,1000,f)!=NULL)
printf("%s",s);
fclose(f);
return 0;
}
A instrução fgets retorna um valor NULL ao marcador de final de arquivo. Ele lê uma linha (até 1 mil caracteres, neste caso) e depois a imprime para stdout. Observe que a instrução printf não inclui n na string de formatação, pois fgets adiciona n ao final de cada linha que lê. Assim, você pode saber se uma linha não está completa no evento que excede o comprimento máximo da linha especificado no segundo parâmetro para fgets.
Erros que devem ser evitados na linguagem C - Não digite acidentalmente close em vez de fclose. A função close existe, portanto o compilador a aceita. Ela até parecerá funcionar se o programa apenas abrir ou fechar alguns arquivos. Entretanto, se o programa abrir e fechar um arquivo em um loop, eventualmente ficará sem manipuladores de arquivos disponíveis e/ou espaço em memória e travará, pois close não está fechando os arquivos corretamente.
|