1 / 9

Introdução à Programação Engenharia da Computação

Aula Prática 11 Operações com Arquivos Monitoria 2013.2. Introdução à Programação Engenharia da Computação. A estrutura FILE. É como um tipo de dado, mas não é um tipo propriamente dito Definido no arquivo cabeçalho stdio.h da biblioteca Declarar um ponteiro de arquivo Exemplo:

mikel
Download Presentation

Introdução à Programação Engenharia da Computação

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. Aula Prática 11 Operações com Arquivos Monitoria 2013.2 Introdução à ProgramaçãoEngenharia da Computação

  2. A estrutura FILE • É como um tipo de dado, mas não é um tipo propriamente dito • Definido no arquivo cabeçalho stdio.h da biblioteca • Declarar um ponteiro de arquivo • Exemplo: • FILE *fp;

  3. Abrindo e Fechando Arquivos • FILE *fopen(char *nomeDoArquivo, char *modo); • Abre um arquivo e retorna um ponteiro para ele • Se algum erro ocorrer a constante NULL é retornada • Exemplo: • fp = fopen(“Arquivo.txt”, “r”); • É de fundamental importância verificar se o arquivo foi aberto corretamente. • intfclose(FILE *fp); • Fecha o arquivo passado como parâmetro • Retorna 0 se o arquivo foi fechado corretamente • Retorna a constante EOF se algum erro ocorreu • Exemplo: • fclose(fp); • É muito importante fechar todos os arquivos que o seu programa abriu, isto evita a perda dos dados armazenados no buffer. • Fechar um arquivo faz com que qualquer caractere que tenha permanecido no "buffer" associado ao fluxo de saída seja gravado.

  4. Forma formatada • intfscanf(FILE *pf, char *str, ...); • Similar a scanf() porém lê de um arquivo • Exemplo: • fscanf(fp, “%d %c”, &num, &ch); • intfprintf(FILE *pf, char *str, ...); • Similar a printf() porém escreve em um arquivo • Exemplo: • fprintf(fp, “%d %c”, num, ch);

  5. fseek • intfseek(FILE *pf, longnumBytes, int origem); • Move a posição corrente de leitura ou escrita em um arquivo • pf é o arquivo que se deseja percorrer • numBytes é o número de bytes a serem movidos • retorna 0 em caso de sucesso ou não-zero caso contrário. • origem é o ponto de partida(geralmente usa-se as macros abaixo):

  6. rewind e remove • void rewind(FILE *fp); • Move o cursor para o inicio do arquivo • Exemplo: • rewind(fp); • int remove(char *Arquivo); • Apaga o arquivo que passamos o ponteiro. • Retorna zero se ocorreu sucesso • Não zero em caso de erro • Exemplo: • remove(“Arquivo.txt”);

  7. Verificando fim de arquivo • intfeof(FILE *fp); • Indica o fim de um arquivo • Retorna não-zero se o arquivo chegou ao fim e zero caso contrário • EOF é uma constante que representa o fim do arquivo. fscanf() retorna EOF quando chega no fim do arquivo, então isso pode ser usado para checar se o arquivo terminou de ser lido.

  8. Outra forma de ler/escrever de arquivo FILE * freopen ( const char * filename, const char * mode, FILE * stream ); Com essa função, você pode redirecionar a entrada padrão para um arquivo Exemplo : freopen (“input.txt”, “r”, stdin); freopen (“output.txt”, “w”, stdout); Após estes comandos serem utilizados, scanf() e printf() irão aparecer nos Arquivos definidos como parâmetro, e não mais no console. Vantagens : Você pode mudar da entrada padrão para o arquivo e vice versa só comentando essas linhas, sem precisar alterar o código todo. Desvantagens : Uma vez chamada essas funções, você não poderá usar arquivo e entrada padrão ao mesmo tempo, pois a referência foi perdida

  9. Exercícios • 1. Escreva um programa que funcione como uma agenda telefônica. • Deverá existir uma estrutura que represente os contatos da agenda (nome e telefone). Deverá existir uma estrutura que representa a agenda, ela conterá um vetor dinâmico de ponteiros que vai servir para guardar os contatos da agenda e o número de contatos. Os contados deverão ser armazenados em ordem alfabética no vetor. • O programa usará um arquivo chamado “agenda.txt” para salvar e carregar contatos entre as execuções. Um contato é representado na agenda por “NomeContato, Numero”. Haverá um contato por linha. • O programa deverá apresentar as seguintes opções: • Inserir contato • Remover contato (receberá o nome do contato que será deletado) • Buscar contato (receberá o nome do contato) • Salvar agenda (salva a agenda atual no arquivo “agenda.txt” • Carregar agenda (carrega a agenda do arquivo “agenda.txt” para o programa)

More Related