Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Prof: Erivelto Tschoeke, Msc. – erivelto@sbs.udesc.br
UDESC – Centro de Ensino do Planalto Norte Arquivos binários
2
Lendo e Escrevendo Arquivos Binários
As funções fread e fwrite são empregadas para leitura e escrita de dados em modo binário. Os protótipos das funções são: size_t fread (void *ptr, size_t size, size_t nmemb, FILE *parq); size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *parq); A função fread lê nmemb objetos, cada um com size bytes de comprimento do fluxo apontado por stream e os coloca na localização apontada por ptr. fread retorna o número de itens que foram lidos com sucesso. Caso ocorra um erro, ou o fim do arquivo foi atingido o valor de retorno é menor do que nmemb ou zero. Esta função não distingue entre um fim de arquivo e erro, portanto é aconselhavel o uso de feof() ou ferror() para determinar que erro ocorreu.
3
Escrevendo arquivos binários
A função fwrite escreve nmemb elementos de dados, cada um com size bytes de comprimento, para o fluxo apontado por stream obtendo-os da localização apontada por ptr. fwrite retorna o número de itens que foram lidos com sucesso. Caso ocorra um erro, ou o fim do arquivo foi atingido o valor de retorno é menor do que nmemb ou zero.
4
Primeiros programas: O programa c10leb.c mostra como podemos escrever e ler dados de diferentes tipos em arquivos. Como um dos parâmetros da função é o número de bytes do dado a ser lido, é recomendado o uso de sizeof.
5
Arquivos binários: Uma das principais aplicações destas funções é a leitura e escrita de estruturas criadas pelos usuários. A gravação em binário da estrutura permite que o programador ao escrever ou ler do arquivo se preocupe somente com a estrutura como um todo e não com cada elemento que a compõe.
6
Mais programas. O programa c10bin.c mostrado abaixo ilustra como podemos escrever e ler estruturas.
7
Entrada e Saída Formatada
As funções fprintf() e fscanf() são equivalentes as funções printf() e scanf() usadas até agora, sendo a única modificação o fato de que elas trabalham com fluxos de dados (arquivos). Os protótipos das duas funções são os seguintes: int fprintf(FILE *parq, const char *formatacao, ...); int fscanf(FILE *parq, const char *formatacao, ...); onde parq é um ponteiro de arquivo recebido após uma chamada a fopen().
8
Lembrete: Embora estas duas funções, por sua semelhança com printf() e scanf(), sejam maneiras convenientes de escrecer e ler dados de arquivos, elas têm a desvantagem de serem mais lentas do que uso de arquivos binários. A perda de tempo é devido ao fato dos dados serem gravados em ASCII, o que obriga a uma conversão dos dados a cada operação realizada.
9
Lembrete: Em alguns casos o fato dos dados serem gravados em ASCII pode ser considerado um vantagem que se sobrepõe a desvantagem da redução de velocidade. Dados gravados em ASCII podem ser facilmente verificados pelos usuários, o que não acontece com dados em binário.
10
Saida formatada Arquivos formatados tem uma vantagem que é a interpretação por vários tipos de aplicativos que fazem a importação de arquivos de texto. Normalmente o padrão destes arquivos são: xxx;xxxxxxx;xxxxxx;x;xxxxxx; O exemplo c10sp.c, mostra um exemplo de uso destas funções para ler e escrever vários tipos de dados em um arquivo.
11
Lista de exercícios Fazer os programas pedidos na lista de exercícios;
Equipes de 3 alunos; Entrega próxima aula (07/10/2009); Início hoje!.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.