1 / 12

Manipulação de Arquivos em C

Manipulação de Arquivos em C. Arquivos. Tipos de arquivo: Sequencial (texto) Caracteres armazenadas sequencialmente. É possível determinar o primeiro, segundo terceiro .. caracteres que compõem o arquivo Binário Formado por uma seqüência de bytes sem correspondência com um tipo de dado.

jui
Download Presentation

Manipulação de Arquivos em C

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Manipulação de Arquivos em C

  2. Arquivos Tipos de arquivo: • Sequencial (texto) • Caracteres armazenadas sequencialmente. • É possível determinar o primeiro, segundo terceiro .. caracteres que compõem o arquivo • Binário • Formado por uma seqüência de bytes sem correspondência com um tipo de dado. • Cabe ao programador fazer esta correspondência quando le e escreve estes arquivos.

  3. Descritor de arquivo: Em C: Estrutura de dados denominada FILE Armazena informações sobre o arquivo em memória secundária (arquivo físico). O arquivo lógico e armazenado em variáveis de memória definidas pelo programador. Criando um descritor: FILE *parquivo; Descritor de Arquivos Memória primária Memória secundária Descritor de Arquivo (FILE) Arquivo “Físico” Arquivo “lógico” em memória

  4. Abrir um arquivo: função fopen(..) Associar um descritor a um arquivo físico: FILE *parquivo; char *nome = "texto.txt"; if (( parquivo = fopen(nome, "w+b")) == NULL) { printf("\n\nNao foi possivel abrir o arquivo para escrita.\n"); exit(1); } Abrindo e Fechando Arquivos

  5. Abrindo e Fechando Arquivos FILE *pa Fopen (nome_do_arquivo_físico, modo_de_abertura) • Modos de abertura:

  6. Abrindo e Fechando Arquivos • Fechando um arquivo: função fclose(..) • Quando um programa não precisa mais utilizar um arquivo por um período de tempo longo, o arquivo pode ser fechado • Fechar um arquivo protege os seus dados, garante que atualizações feitas serão salvas e libera o arquivo para outros usuários ou programas poderem utiliza-lo. fclose(parquivo);

  7. Lendo dados em um arquivo sequencial • Quando o arquivo é aberto, a posição corrente (mantida internamente pelo sistema) é o início do arquivo. • A cada operação executada sobre o arquivo, essa posição é atualizada. • A função int ftell(FILE *pa)retorna a posição corrente no arquivo • A função feof retorna um valor verdadeiro (inteiro diferente de 0)se a posição corrente para o arquivo indicado é o final do arquivo, ou falso (inteiro igual a 0) em caso contrário. • A rotina C para obter um caráter de um arquivo é fgetc: • int fgetc(FILE *stream); • O valor de retorno de fgetc é um inteiro, que pode conter o código ASCII do caráter ou o valor EOF (definido em stdio.h), que indica o final do arquivo ou a ocorrência de alguma condição de erro. • A função rewind() recoloca o indicador de posição de arquivo no inicio do arquivo.

  8. Exemplo void exemplo3 () { FILE *parquivo; char *nome = "texto.txt"; char ch; if (( parquivo = fopen(nome, "r")) == NULL) { printf("\n\nNao foi possivel abrir o arquivo para escrita.\n"); exit(1); } while (feof(parquivo)== FALSE) { ch = fgetc(parquivo); putchar(ch); } rewind(parquivo); }

  9. fscanf e fprintf • fprintf() e fscanf() são semelhantes a printf() e scanf(). Adiciona-se um parâmetro descritor de arquivo nestas funções para determinar o arquivo de onde se está lendo ou escrevendo.

  10. fscanf // Lendo caracteres: void exemplo4() { FILE *parquivo; char *nome = "texto.txt"; char ch; if (( parquivo = fopen(nome, "r")) == NULL) { printf("\n\nNao foi possivel abrir o arquivo para escrita.\n"); exit(1); } while (feof(parquivo)== FALSE) { fscanf (parquivo, "%c", &ch); putchar(ch); } }

  11. fscanf //Lendo números inteiros void exemplo5() { FILE *parquivo; char *nome = "numeros.txt"; int n; if (( parquivo = fopen(nome, "r")) == NULL) { printf("\n\nNao foi possivel abrir o arquivo para escrita.\n"); exit(1); } while (feof(parquivo)== FALSE) { fscanf (parquivo, "%d", &n); printf("%d ", n); } }

  12. fprintf void exemplo6() { FILE *parquivo; int i=10; char *nome = "numeros.txt"; int n; if (( parquivo = fopen(nome, "a+")) == NULL) { printf("\n\nNao foi possivel abrir o arquivo.\n"); exit(1); } while (i++<20) { fprintf(parquivo, "%d ", i); } rewind(parquivo); while (feof(parquivo)== FALSE) { fscanf (parquivo, "%d", &n); printf("%d ", n); } }

More Related