A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Manipulação de Arquivos em C

Apresentações semelhantes


Apresentação em tema: "Manipulação de Arquivos em C"— Transcrição da apresentação:

1 Manipulação de Arquivos em C

2 Arquivos Tipos de arquivo: Sequencial (texto) Binário
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 Arquivos Descritor de arquivo: Memória primária
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; Memória primária Memória secundária Descritor de Arquivo (FILE) Arquivo “Físico” Arquivo “lógico” em memória

4 Abrindo e Fechando Arquivos
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); }

5 Abrindo e Fechando Arquivos
FILE *pa Fopen (nome_do_arquivo_físico, modo_de_abertura) Modos de abertura: r Abre um arquivo texto para leitura w Cria um arquivo texto para escrita a Adiciona texto ao fim de um arquivo texto rb Abre um arquivo binário para leitura wb Abre um arquivo binário para escrita ab Anexa a um arquivo binário [r+, w+, a+ ]+ b O + inclui escrita ou leitura nos modos e o + b define como binário

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);


Carregar ppt "Manipulação de Arquivos em C"

Apresentações semelhantes


Anúncios Google