Arquivos


O tipo file é uma estrutura declarada no arquivo stdio.h, cujos elementos são informações sobre o arquivo que está sendo acessado.

Algumas dessas informações são:
status do arquivo, endereço do buffer para transferência de dados, posição corrente do ponteiro etc.

Declaração FILE * p;

p será este ponteiro que vamos poder manipular os arquivos em C.

Função fopen()
função de abertura de arquivos.

protótipo FILE *fopen (char * nome_arquivo, char * modo)

O nome do arquivo determina qual arquivo deverá ser aberto. Este nome deve ser válido no sistema operacional sendo utilizado.retorna NULL no caso de falha na abertura.

O modo de abertura diz a função fopen() que tipo de uso você vai fazer do arquivo. São três modos possíveis:

"r"- somente para leitura

"w"- arquivo para escrita

"a"- arquivo para gravação, caso já exista conteúdo, será adicionado no final do arquivo.

Se acresentarmos "b" ou "t", junto ao modo de abertura, o arquivo abrirá em modo binário ou texto respectivamente.

Ex:
FILE * fp;
fp=fopen("exemplo.bin","wb");
if (!fp)
printf("Erro na abertura doa rquivo");

A função fclose
Quando acabamos de usar um arquivo que abrimos devemos fechá-lo.

Protótipo

fclose (< nome_ponteiro >);
fclose (FILE * fp);

O ponteiro fp passado a função fclose() determina o arquivo a ser fechado.Retorna zero no caso de sucesso.

Lendo e escrevendo em arquivos

  • fprintf
  • fscanf

    fprintf()
    Esta função funciona como o printf(), a diferença é que a saída é em um arquivo e não na tela do computador.

    Protótipo
    int fprintf(FILE *fp, char *str)
    fprintf(fp,"expressão de controle",arg1,arg2);

    fscanf()
    Lê de um arquivo, ou do teclado, neste caso, utiliza-se o comando stdin.

    Protótipo
    int fscanf(FILE *fp, char *str);
    fscanf(fp, "expressão de controle",end1,end2); /* leitura de uma arquivo*/
    Ou,
    fscanf(stdin, "expressão de controle",end1,end2); /* leitura do teclado*/

    Ex:

    FILE *fp;
    int i=2;
    float x=3;
    fp=fopen("saida.c","w").
    fprintf(fp,"%d%f\n",i,x);
    fscanf(fp,"%d %f", &i,&x);
    fclose(fp);

    O comando feof indica o fim do arquivo.Retorna não zero se o arquivo chegou ao fim.