Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Estruturas de Dados II

Manipulação de Arquivos
em C
Introdução
Programas que leem dados do teclado e
escrevem na tela do monitor são comuns, mas há
a necessidade de ler dados...
Motivação
• Entrada (de um programa):
Banco de dados

• Saída: Lista dos funcionários que trabalham na empresa há
mais de ...
Tipos de Arquivo
-Arquivos de acesso sequencial (Texto):
•Arquivos nos quais são gravados e/ou lidos caracteres.
•Podem se...
Manipulação
•
•
•
-

Abertura
Leitura e/ou escrita
Fechamento
Declaração
•Para acessarmos o conteúdo de um arquivo,
declar...
Manipulação
- Abertura (função fopen)
Protótipo:
FILE* fopen(const char *nome_do_arquivo,const
char *modo);

Exemplo
Manipulação
Função fopen
r

Abre um arquivo texto para leitura. O arquivo deve existir antes
de ser aberto.

w

Abrir um a...
Manipulação
Função fopen
r+

Abre um arquivo texto para leitura e gravação. O arquivo deve
existir e pode ser modificado.
...
Manipulação
-

Escrita e leitura em arquivos texto
fputc(int c, FILE *f)

Escreve um caractere c em um arquivo
apontado po...
Manipulação
-Escrita e leitura em arquivos binários
fseek(FILE *f, long
tam, int origem)

Posiciona o ponteiro dentro de u...
Manipulação
- Fechamento (função fclose)
•
•

Utilizada para fechar um arquivo aberto por fopen().
Retorna zero quando o f...
Manipulação
- Outras funções para manipulação de arquivos
ferror(FILE *f)

Retorna um inteiro indicando se houve um erro n...
Referências
• Schildt, Herbert. C – Completo e
Total. Makron Books.
Upcoming SlideShare
Loading in …5
×

Estrutura de dados ii

352 views

Published on

  • Be the first to comment

  • Be the first to like this

Estrutura de dados ii

  1. 1. Estruturas de Dados II Manipulação de Arquivos em C
  2. 2. Introdução Programas que leem dados do teclado e escrevem na tela do monitor são comuns, mas há a necessidade de ler dados de um arquivo que está no disco (HD) e de como gravar um arquivo no disco.
  3. 3. Motivação • Entrada (de um programa): Banco de dados • Saída: Lista dos funcionários que trabalham na empresa há mais de 5 anos. Desenvolvê-lo de modo a termos entrada e saída através de arquivos. Arquivo = pode ser visto como um espaço sequencial onde são lidos ou gravados dados.
  4. 4. Tipos de Arquivo -Arquivos de acesso sequencial (Texto): •Arquivos nos quais são gravados e/ou lidos caracteres. •Podem ser abertos em um editor de textos. -Arquivos de acesso aleatório( Binário) •Arquivos nos quais são gravados e/ou lidos dados( por exemplo, int, float, char, double,struct,etc.). •Podem ser lidos a partir de qualquer posição, sem a necessidade de ler todos os dados anteriores. •Não podemos acessar seu conteúdo através de um editor de texto.
  5. 5. Manipulação • • • - Abertura Leitura e/ou escrita Fechamento Declaração •Para acessarmos o conteúdo de um arquivo, declaramos um ponteiro de arquivo: O ponteiro pf será associado ao nome do arquivo a ser aberto.
  6. 6. Manipulação - Abertura (função fopen) Protótipo: FILE* fopen(const char *nome_do_arquivo,const char *modo); Exemplo
  7. 7. Manipulação Função fopen r Abre um arquivo texto para leitura. O arquivo deve existir antes de ser aberto. w Abrir um arquivo texto para gravação. Se o arquivo não existir, ele será criado. Se já existir, o conteúdo anterior será destruído. a Abrir um arquivo texto para gravação. Os dados serão adicionados no fim do arquivo ("append"), se ele já existir, ou um novo arquivo será criado, no caso de arquivo não existente anteriormente. rb Abre um arquivo binário para leitura. . O arquivo deve existir antes de ser aberto. wb Cria um arquivo binário para escrita. Se já existir, o conteúdo anterior será destruído ab Acrescenta dados binários no fim do arquivo, como no modo "a" anterior, só que o arquivo é binário.
  8. 8. Manipulação Função fopen r+ Abre um arquivo texto para leitura e gravação. O arquivo deve existir e pode ser modificado. w+ Cria um arquivo texto para leitura e gravação. Se o arquivo existir, o conteúdo anterior será destruído. Se não existir, será criado. a+ Abre um arquivo texto para gravação e leitura. Os dados serão adicionados no fim do arquivo se ele já existir, ou um novo arquivo será criado, no caso de arquivo não existente anteriormente. r+b Abre um arquivo binário para leitura e escrita. O mesmo que "r+" acima, só que o arquivo é binário. w+b Cria um arquivo binário para leitura e escrita. O mesmo que "w+" acima, só que o arquivo é binário. a+b Acrescenta dados ou cria uma arquivo binário para leitura e escrita. O mesmo que "a+" acima, só que o arquivo é binário.
  9. 9. Manipulação - Escrita e leitura em arquivos texto fputc(int c, FILE *f) Escreve um caractere c em um arquivo apontado por f. Devolve o caractere caso a operação seja bem sucedida ou a constante EOF caso contrário. fgetc(FILE *f) Lê um caractere a partir de um arquivo apontado por f e devolve um inteiro com o valor deste caractere. fscanf e fprintf Funcionam exatamente como as funções scanf() e printf() comuns, com a diferente de que essas recebem um parâmetro a mais que é um ponteiro para o arquivo a ser lido/escrito. fgets(char *str, int tam, FILE *f) Lê uma string com no máximo tam caracteres de um arquivo f e armazena em str fputs(char *str, FILE *f) Escreve uma string str em um arquivo f.
  10. 10. Manipulação -Escrita e leitura em arquivos binários fseek(FILE *f, long tam, int origem) Posiciona o ponteiro dentro de um arquivo binário f tam posições após origem. O parâmetro origem pode ter os seguintes valores: SEEK_SET SEEK_CUR SEEK_END início do arquivo posição atual final do arquivo fread(void *buffer, Lê n registros de tamanho b de um arquivo f e size_t b, size_t n, FILE armazena em buffer e devolve o número de *f) elementos lidos. Fwrite (void *buffer, Escreve n registros de tamanho b armazenados size_t b, size_t n, FILE em buffer em um arquivo f. *f) rewind(FILE *f) Redireciona o ponteiro de posição do arquivo f de volta para o início.
  11. 11. Manipulação - Fechamento (função fclose) • • Utilizada para fechar um arquivo aberto por fopen(). Retorna zero quando o fechamento se dá com sucesso. Protótipo: int fclose(FILE* pf) Exemplo
  12. 12. Manipulação - Outras funções para manipulação de arquivos ferror(FILE *f) Retorna um inteiro indicando se houve um erro na última operação feita em um arquivo. remove(char nome) Apaga um arquivo com o nome nome do disco. Retorna zero caso seja bem sucedida e um número diferente caso contrário. feof(FILE *f) Indica quando o final de um arquivo binário f foi atingido. Retorna um número diferente de zero caso tenha atingido e zero caso contrário. fflush(FILE *f) Esvazia o conteúdo de uma stream de saída e escreve qualquer conteúdo existente em f. Devolve zero caso tenha obtido sucesso, caso contrário devolve EOF.
  13. 13. Referências • Schildt, Herbert. C – Completo e Total. Makron Books.

×