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

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

Manipulação de Arquivos em C. Arquivos Tipos de arquivo: –Sequencial (texto) Caracteres armazenadas sequencialmente. É possível determinar o primeiro,

Apresentações semelhantes


Apresentação em tema: "Manipulação de Arquivos em C. Arquivos Tipos de arquivo: –Sequencial (texto) Caracteres armazenadas sequencialmente. É possível determinar o primeiro,"— Transcrição da apresentação:

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 Arquivos 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; Arquivo lógico em memória Descritor de Arquivo (FILE) Arquivo Físico Memória secundária Memória primá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: rAbre um arquivo texto para leitura wCria um arquivo texto para escrita aAdiciona texto ao fim de um arquivo texto rbAbre um arquivo binário para leitura wbAbre um arquivo binário para escrita abAnexa a um arquivo binário [r+, w+, a+ ]+ bO + 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. Arquivos Tipos de arquivo: –Sequencial (texto) Caracteres armazenadas sequencialmente. É possível determinar o primeiro,"

Apresentações semelhantes


Anúncios Google