Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouStella Salvo Alterado mais de 9 anos atrás
1
Aula Prática 11 Operações com Arquivos Monitoria 2013.2
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. int fclose(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 int fscanf(FILE *pf, char *str,...); Similar a scanf() porém lê de um arquivo Exemplo: ○ fscanf(fp, “%d %c”, &num, &ch); int fprintf(FILE *pf, char *str,...); Similar a printf() porém escreve em um arquivo Exemplo: ○ fprintf(fp, “%d %c”, num, ch);
5
fseek int fseek(FILE *pf, long numBytes, 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): NomeValSignificado SEEK_SET 0Inicio do arq. SEEK_CUR 1Ponto corrente SEEK_END 2Fim do arquivo
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 int feof(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)
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.