Buscar

Arquivos em C

Prévia do material em texto

Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Manipulação de arquivos em C
Prof. DSc. Newton Spolaôr
Disciplina Computação I
Bacharelado em Ciência da Computação
Universidade Estadual do Oeste do Paraná (UNIOESTE)
Brasil
25/10/2016
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Sumário
1 Introdução
2 Arquivos texto em C
3 Arquivos binários em C
4 Considerações finais
Newton Spolaôr Manipulação de arquivos em C 2
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Aula anterior em um breve olhar
Motivação para arquivos
Objetivo geral desta aula
Aula anterior em um breve olhar
Na aula anterior foram apresentados conceitos sobre tipos
estruturados de dados
struct
struct com um campo do tipo struct
vetor de struct
Nesta aula são abordados conceitos referentes a arquivos
Antes de seguir, mencione uma motivação para o uso de
arquivos (1o semestre)
Newton Spolaôr Manipulação de arquivos em C 3
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Aula anterior em um breve olhar
Motivação para arquivos
Objetivo geral desta aula
Motivação para arquivos [2, 3]
Em alguns cenários, é necessário ter mais opções para
alimentar um programa com dados e ou receber dados de
um programa
Aplicações com uso intensivo de dados (ex.: LHC e seus
41 TB/dia [1])
Depuração de programas, mesmo quando poucos dados
estão envolvidos
Armazenamento persistente de dados
Arquivos permitem a leitura a partir de um bloco único de
dados em disco, bem como a gravação de dados no
mesmo bloco
Newton Spolaôr Manipulação de arquivos em C 4
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Aula anterior em um breve olhar
Motivação para arquivos
Objetivo geral desta aula
Motivação para arquivos [2, 3]
Em alguns cenários, é necessário ter mais opções para
alimentar um programa com dados e ou receber dados de
um programa
Aplicações com uso intensivo de dados (ex.: LHC e seus
41 TB/dia [1])
Depuração de programas, mesmo quando poucos dados
estão envolvidos
Armazenamento persistente de dados
Arquivos permitem a leitura a partir de um bloco único de
dados em disco, bem como a gravação de dados no
mesmo bloco
Newton Spolaôr Manipulação de arquivos em C 4
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Aula anterior em um breve olhar
Motivação para arquivos
Objetivo geral desta aula
Algumas características de arquivos [3]
1 Diferentemente de um vetor em memória, um arquivo
preserva seu conteúdo mesmo após o encerramento de
programas
2 Possibilidade de armazenar tanto texto compreensível por
humanos quanto dados binários
3 Possibilidade de estender o conceito de arquivo para
stream (fluxo ou sequência) de dados em uma rede – de
fato, os arquivos são entendidos como fluxos em C
4 Eventual bloqueio de uso de arquivo quando há
concorrência
5 Alternativa limitada ao uso de bancos de dados – coleção
de dados interrelacionados logicamente
Newton Spolaôr Manipulação de arquivos em C 5
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Aula anterior em um breve olhar
Motivação para arquivos
Objetivo geral desta aula
Algumas características de arquivos [3]
1 Diferentemente de um vetor em memória, um arquivo
preserva seu conteúdo mesmo após o encerramento de
programas
2 Possibilidade de armazenar tanto texto compreensível por
humanos quanto dados binários
3 Possibilidade de estender o conceito de arquivo para
stream (fluxo ou sequência) de dados em uma rede – de
fato, os arquivos são entendidos como fluxos em C
4 Eventual bloqueio de uso de arquivo quando há
concorrência
5 Alternativa limitada ao uso de bancos de dados – coleção
de dados interrelacionados logicamente
Newton Spolaôr Manipulação de arquivos em C 5
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Aula anterior em um breve olhar
Motivação para arquivos
Objetivo geral desta aula
Algumas características de arquivos [3]
1 Diferentemente de um vetor em memória, um arquivo
preserva seu conteúdo mesmo após o encerramento de
programas
2 Possibilidade de armazenar tanto texto compreensível por
humanos quanto dados binários
3 Possibilidade de estender o conceito de arquivo para
stream (fluxo ou sequência) de dados em uma rede – de
fato, os arquivos são entendidos como fluxos em C
4 Eventual bloqueio de uso de arquivo quando há
concorrência
5 Alternativa limitada ao uso de bancos de dados – coleção
de dados interrelacionados logicamente
Newton Spolaôr Manipulação de arquivos em C 5
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Aula anterior em um breve olhar
Motivação para arquivos
Objetivo geral desta aula
Algumas características de arquivos [3]
1 Diferentemente de um vetor em memória, um arquivo
preserva seu conteúdo mesmo após o encerramento de
programas
2 Possibilidade de armazenar tanto texto compreensível por
humanos quanto dados binários
3 Possibilidade de estender o conceito de arquivo para
stream (fluxo ou sequência) de dados em uma rede – de
fato, os arquivos são entendidos como fluxos em C
4 Eventual bloqueio de uso de arquivo quando há
concorrência
5 Alternativa limitada ao uso de bancos de dados – coleção
de dados interrelacionados logicamente
Newton Spolaôr Manipulação de arquivos em C 5
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Aula anterior em um breve olhar
Motivação para arquivos
Objetivo geral desta aula
Algumas características de arquivos [3]
1 Diferentemente de um vetor em memória, um arquivo
preserva seu conteúdo mesmo após o encerramento de
programas
2 Possibilidade de armazenar tanto texto compreensível por
humanos quanto dados binários
3 Possibilidade de estender o conceito de arquivo para
stream (fluxo ou sequência) de dados em uma rede – de
fato, os arquivos são entendidos como fluxos em C
4 Eventual bloqueio de uso de arquivo quando há
concorrência
5 Alternativa limitada ao uso de bancos de dados – coleção
de dados interrelacionados logicamente
Newton Spolaôr Manipulação de arquivos em C 5
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Aula anterior em um breve olhar
Motivação para arquivos
Objetivo geral desta aula
Fluxos (streams) [4]
Em C, arquivos podem ser organizados conforme dois
tipos de fluxo
Fluxo de texto
Seqüência de caracteres, que pode ou não ser dividida em
linhas terminadas por um caractere de final de linha (\n)
Obs.: na última linha não é obrigatório o caractere de fim de
linha, pois o fim do arquivo é indicado pela constante EOF
(abreviatura de End Of File)
Fluxo binário
Seqüência de bytes lidos, sem tradução, diretamente do
dispositivo externo
Permite o armazenamento direto de variáveis em arquivo
Newton Spolaôr Manipulação de arquivos em C 6
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Aula anterior em um breve olhar
Motivação para arquivos
Objetivo geral desta aula
Bufferização [5]
A movimentação de fluxos de dados entre dispositivos
com diferentes velocidades de acesso, como disco e
memória, é complexa e envolve conceitos de sistemas
operacionais e arquitetura de computadores
Para melhor eficiência, uma área em memória chamada
buffer é criada para armazenar dados que em algum
momento serão transferidos para o disco
Exemplos baseados na ideia de buffer incluem a escrita
de uma sequência de variáveis (memória) em um arquivo
texto (disco) – ao invés de escrever cada dado no disco, é
mais rápido escrever de uma vez um grupo de dados
Newton Spolaôr Manipulaçãode arquivos em C 7
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Aula anterior em um breve olhar
Motivação para arquivos
Objetivo geral desta aula
Bufferização [5]
A movimentação de fluxos de dados entre dispositivos
com diferentes velocidades de acesso, como disco e
memória, é complexa e envolve conceitos de sistemas
operacionais e arquitetura de computadores
Para melhor eficiência, uma área em memória chamada
buffer é criada para armazenar dados que em algum
momento serão transferidos para o disco
Exemplos baseados na ideia de buffer incluem a escrita
de uma sequência de variáveis (memória) em um arquivo
texto (disco) – ao invés de escrever cada dado no disco, é
mais rápido escrever de uma vez um grupo de dados
Newton Spolaôr Manipulação de arquivos em C 7
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Aula anterior em um breve olhar
Motivação para arquivos
Objetivo geral desta aula
Bufferização [5]
A movimentação de fluxos de dados entre dispositivos
com diferentes velocidades de acesso, como disco e
memória, é complexa e envolve conceitos de sistemas
operacionais e arquitetura de computadores
Para melhor eficiência, uma área em memória chamada
buffer é criada para armazenar dados que em algum
momento serão transferidos para o disco
Exemplos baseados na ideia de buffer incluem a escrita
de uma sequência de variáveis (memória) em um arquivo
texto (disco) – ao invés de escrever cada dado no disco, é
mais rápido escrever de uma vez um grupo de dados
Newton Spolaôr Manipulação de arquivos em C 7
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Aula anterior em um breve olhar
Motivação para arquivos
Objetivo geral desta aula
Bufferização [5]
Buffers podem ser implementados como uma fila, um tipo
estruturado de dados
Diferentes buffers podem existir em um computador, com
tamanhos variados e uma organização eventualmente
hierárquica
Contudo, na maioria dos casos é suficiente considerar que
a escrita/leitura de dados em um arquivo é realizada de
modo transparente
Essa abstração é possível porque funções pré-definidas
do C e o sistema operacional cuidam dos detalhes
técnicos
Newton Spolaôr Manipulação de arquivos em C 8
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Aula anterior em um breve olhar
Motivação para arquivos
Objetivo geral desta aula
Bufferização [5]
Buffers podem ser implementados como uma fila, um tipo
estruturado de dados
Diferentes buffers podem existir em um computador, com
tamanhos variados e uma organização eventualmente
hierárquica
Contudo, na maioria dos casos é suficiente considerar que
a escrita/leitura de dados em um arquivo é realizada de
modo transparente
Essa abstração é possível porque funções pré-definidas
do C e o sistema operacional cuidam dos detalhes
técnicos
Newton Spolaôr Manipulação de arquivos em C 8
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Aula anterior em um breve olhar
Motivação para arquivos
Objetivo geral desta aula
Bufferização [5]
Buffers podem ser implementados como uma fila, um tipo
estruturado de dados
Diferentes buffers podem existir em um computador, com
tamanhos variados e uma organização eventualmente
hierárquica
Contudo, na maioria dos casos é suficiente considerar que
a escrita/leitura de dados em um arquivo é realizada de
modo transparente
Essa abstração é possível porque funções pré-definidas
do C e o sistema operacional cuidam dos detalhes
técnicos
Newton Spolaôr Manipulação de arquivos em C 8
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Aula anterior em um breve olhar
Motivação para arquivos
Objetivo geral desta aula
Bufferização [5]
Buffers podem ser implementados como uma fila, um tipo
estruturado de dados
Diferentes buffers podem existir em um computador, com
tamanhos variados e uma organização eventualmente
hierárquica
Contudo, na maioria dos casos é suficiente considerar que
a escrita/leitura de dados em um arquivo é realizada de
modo transparente
Essa abstração é possível porque funções pré-definidas
do C e o sistema operacional cuidam dos detalhes
técnicos
Newton Spolaôr Manipulação de arquivos em C 8
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Aula anterior em um breve olhar
Motivação para arquivos
Objetivo geral desta aula
Entrada e saída padrão [6, 5]
C estende a ideia de arquivos para quase tudo que pode
ser tratado como uma fonte de dados (input) e ou como
um sugador de dados (output)
Nesse sentido, alguns velhos conhecidos são associados
a arquivos
Teclado: arquivo de entrada padrão, denominado stdin
Tela: arquivo de saída padrão, denominado stdout
Na prática, essa ideia é usada, por exemplo, para lidar
com entradas e saídas de processos executados em
sistemas Unix
Newton Spolaôr Manipulação de arquivos em C 9
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Aula anterior em um breve olhar
Motivação para arquivos
Objetivo geral desta aula
Objetivo geral desta aula
Apresentar conceitos de arquivos em C
Newton Spolaôr Manipulação de arquivos em C 10
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Tipos de dados para arquivos texto
Rotinas para arquivos texto
Exercícios
Sumário
1 Introdução
2 Arquivos texto em C
3 Arquivos binários em C
4 Considerações finais
Newton Spolaôr Manipulação de arquivos em C 11
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Tipos de dados para arquivos texto
Rotinas para arquivos texto
Exercícios
Tipos de dados [2]
Para gerenciar um arquivo texto ou binário em C, é
necessário criar uma variável ponteiro que aponta para o
tipo estruturado FILE
Exemplo: FILE * f;
Após o uso de determinadas operações nessa variável,
ela passa a atuar como um file handler – identificador do
arquivo controlado pelo sistema operacional
Esse handler organiza, por exemplo, a cabeça de
leitura/escrita do arquivo
Newton Spolaôr Manipulação de arquivos em C 12
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Tipos de dados para arquivos texto
Rotinas para arquivos texto
Exercícios
Operações comuns em arquivos [4]
Abertura e fechamento de arquivos
Leitura e escrita de um caractere
Indicação de que o fim do arquivo foi atingido
Posicionar o arquivo em um ponto determinado
Newton Spolaôr Manipulação de arquivos em C 13
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Tipos de dados para arquivos texto
Rotinas para arquivos texto
Exercícios
Observações adicionais [4]
Ao final das operações necessárias, o programa em
execução deve fechar o arquivo
Quando um programa é encerrado, todos os arquivos
associados são fechados automaticamente e os
conteúdos dos buffers são descarregados para o
dispositivo externo
O posicionamento de arquivo em um determinado ponto
geralmente é realizado em arquivos binários
Newton Spolaôr Manipulação de arquivos em C 14
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Tipos de dados para arquivos texto
Rotinas para arquivos texto
Exercícios
Principais funções para arquivos em C [4]
Newton Spolaôr Manipulação de arquivos em C 15
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Tipos de dados para arquivos texto
Rotinas para arquivos texto
Exercícios
Abertura e fechamento de arquivo [4]
FILE * fopen(<nome_arquivo.txt>,
<modo_acesso_arquivo>);
Retorna um handler (identificador interno) que aponta para
um arquivo com um determinadonome (identificador
externa)
Quando ao modo de acesso a arquivo, existem em C
diferentes modalidades
Para fins de comparação, no Pascal, somente 2
modalidades estão disponíveis: leitura e escrita (a qual
sempre sobrescreve um arquivo já existente)
Newton Spolaôr Manipulação de arquivos em C 16
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Tipos de dados para arquivos texto
Rotinas para arquivos texto
Exercícios
Modo de acesso a arquivo texto [4]
r: abre arquivo existente para leitura
w: cria arquivo para escrita (ou abre arquivo já existente e
sobrescreve desde início)
a: cria arquivo para escrita (ou abre arquivo já existente e
anexa ao final dele)
Newton Spolaôr Manipulação de arquivos em C 17
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Tipos de dados para arquivos texto
Rotinas para arquivos texto
Exercícios
Abertura e fechamento de arquivo [4]
int fclose(<nome_da_variável_handler>);
Retorna valor 0 para arquivo fechado com sucesso, ou
retorna EOF caso contrário
Para cada fopen, um fclose deve ser adicionado no
código
Newton Spolaôr Manipulação de arquivos em C 18
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Tipos de dados para arquivos texto
Rotinas para arquivos texto
Exercícios
Abrindo e fechando um arquivo [4]
#include <stdio.h>
int main ()
{
FILE *arq;
arq=fopen("dados.txt", "w");
if (arq==NULL)
{
printf("Erro na abertura do arquivo");
return 0;
}
fclose(arq);
return 0;
}
Newton Spolaôr Manipulação de arquivos em C 19
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Tipos de dados para arquivos texto
Rotinas para arquivos texto
Exercícios
Funções de escrita e leitura em arquivo [4]
fprintf(<nome_da_variável_handler>,
<mensagem>,
[<lista_variáveis_convencionais>]);
fscanf(<nome_da_variável_handler>,
<mensagem>,
[<lista_endereços_variáveis>]);
fgets(<nome_da_variável_string>,
<tamanho_máximo_string+1>,
<nome_da_variável_handler>);
Newton Spolaôr Manipulação de arquivos em C 20
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Tipos de dados para arquivos texto
Rotinas para arquivos texto
Exercícios
Outras funções para arquivo [4]
int feof(<nome_da_variável_handler>);
Retorna zero se handler não aponta para fim do arquivo
fflush(<nome_da_variável_handler>);
Se arquivo aberto para escrita, ou arquivo foi escrito
recentemente, força o armazenamento do conteúdo do
buffer no arquivo
Chamado automaticamente pelo sistema quando um
arquivo é fechado ou quando um programa envolvendo
arquivos termina
Newton Spolaôr Manipulação de arquivos em C 21
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Tipos de dados para arquivos texto
Rotinas para arquivos texto
Exercícios
Escrita de texto em arquivo [4]
#include <stdio.h>
int main ()
{
FILE *arq;
int i, n;
if((arq=fopen("test.txt", "w"))==NULL)
printf("\nErro abrindo arquivo.\n");
for(i=0; i<5; i++) {
scanf("%d", &n);
fprintf(arq, "%d\n", n);
}
fclose(arq);
return 0;
}
Newton Spolaôr Manipulação de arquivos em C 22
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Tipos de dados para arquivos texto
Rotinas para arquivos texto
Exercícios
Leitura de texto em arquivo [4]
#include <stdio.h>
int main ()
{
FILE *arq;
int i, n;
if((arq=fopen("test.txt", "r"))==NULL)
printf("\nErro abrindo arquivo.\n");
for(i=0; i<5; i++) {
fscanf(arq,"%d", &n);
printf("%d\n", n);
}
fclose(arq);
return 0;
}
Newton Spolaôr Manipulação de arquivos em C 23
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Tipos de dados para arquivos texto
Rotinas para arquivos texto
Exercícios
Exercício 1 [4]
Criar um programa que lê uma frase e escreve em um
arquivo de texto
Após a escrita no arquivo, o programa deve ler o conteúdo
do arquivo e exibi-lo na tela
Newton Spolaôr Manipulação de arquivos em C 24
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Tipos de dados para arquivos texto
Rotinas para arquivos texto
Exercícios
Exercício 2 [4]
Criar um programa que lê uma palavra digitada, abre um
arquivo de texto já existente e verifica se a palavra está
contida no arquivo
Newton Spolaôr Manipulação de arquivos em C 25
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Tipos de dados para arquivos texto
Rotinas para arquivos texto
Exercícios
Exercício 3 [4]
Faça um programa que crie uma cópia de um arquivo
Para isso solicite ao usuário dois nomes de arquivos,
sendo o primeiro o arquivo de origem e o segundo o de
destino
Newton Spolaôr Manipulação de arquivos em C 26
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Rotinas voltadas a arquivos binários
Exercícios
Sumário
1 Introdução
2 Arquivos texto em C
3 Arquivos binários em C
4 Considerações finais
Newton Spolaôr Manipulação de arquivos em C 27
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Rotinas voltadas a arquivos binários
Exercícios
Modo de acesso a arquivo binário [4]
rb: abre arquivo existente para leitura
wb: cria arquivo para escrita (ou abre arquivo já existente
e sobrescreve desde início)
ab: cria arquivo para escrita (ou abre arquivo já existente e
anexa ao final dele)
Newton Spolaôr Manipulação de arquivos em C 28
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Rotinas voltadas a arquivos binários
Exercícios
Funções de escrita e leitura em arquivo binário [4]
fwrite(<endereço_de_bloco_a_ser_escrito>,
<tamanho_de_item_do_bloco>,
<quantidade_itens_no_bloco>,
<nome_da_variável_handler>);
Essa função escreve no arquivo o bloco endereçado por
<endereço_de_bloco_a_ser_escrito> com
quantidade_itens_no_bloco itens, sendo que cada
item possui tamanho_de_item_do_bloco bytes
Newton Spolaôr Manipulação de arquivos em C 29
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Rotinas voltadas a arquivos binários
Exercícios
Funções de escrita e leitura em arquivo binário [4]
fread(<endereço_de_bloco_a_ser_lido>,
<tamanho_de_item_do_bloco>,
<quantidade_itens_no_bloco>,
<nome_da_variável_handler>);
Essa função lê do arquivo para o bloco endereçado por
<endereço_de_bloco_a_ser_lido> com
quantidade_itens_no_bloco itens, sendo que cada
item possui tamanho_de_item_do_bloco bytes
Newton Spolaôr Manipulação de arquivos em C 30
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Rotinas voltadas a arquivos binários
Exercícios
Escrita em arquivo binário [7]
#include <stdio.h>
int main ()
{
FILE * pFile;
char buf[] = { ’x’ , ’y’ , ’z’ };
pFile = fopen ("myfile.bin", "wb");
fwrite(buf, sizeof(char), sizeof(buf), pFile);
fclose(pFile);
return 0;
}
Newton Spolaôr Manipulação de arquivos em C 31
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Rotinas voltadas a arquivos binários
Exercícios
Escrita e leitura em arquivo binário [4]
#include <stdio.h>
int main ()
{
FILE *arq;
int val1=63425, val2;
if((arq=fopen("test.bin", "wb"))==NULL)
printf("\nErro abrindo arquivo.\n");
fwrite(&val1, sizeof(int), 1, arq);
fclose(arq);
//continua...
Newton Spolaôr Manipulação de arquivos em C 32
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Rotinas voltadas a arquivos binários
Exercícios
Escrita e leitura em arquivo binário [4]
//continuando...
if((arq=fopen("test.bin", "rb"))==NULL)
printf("\nErroabrindo arquivo.\n");
fread(&val2, sizeof(int), 1, arq);
printf("Val2: %d\n", val2);
system("PAUSE");
fclose(arq);
return 0;
}
Newton Spolaôr Manipulação de arquivos em C 33
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Rotinas voltadas a arquivos binários
Exercícios
Outras funções para arquivo binário [4]
fseek(<nome_da_variável_handler>,
<bytes_a_deslocar>,
<posição_origem_deslocamento>);
Posição origem SEEK_SET: início do arquivo
Posição origem SEEK_CUR: posição atual
Posição origem SEEK_END: fim do arquivo
Newton Spolaôr Manipulação de arquivos em C 34
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Rotinas voltadas a arquivos binários
Exercícios
Exercício 1 [4]
Criar uma função que escreve um vetor de 5 inteiros em
arquivo binário
Após, crie outra função que leia esse vetor do arquivo e o
imprima na tela
Chame as duas funções no programa principal
Newton Spolaôr Manipulação de arquivos em C 35
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Rotinas voltadas a arquivos binários
Exercícios
Exercício 2 [4]
Crie uma estrutura carro com os dados: modelo, cor e
preço
Após, declare um vetor com 5 elementos do tipo carro
Finalmente, armazene esse vetor em um arquivo binário
Newton Spolaôr Manipulação de arquivos em C 36
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Rotinas voltadas a arquivos binários
Exercícios
Exercício 3 [4]
A partir do exercício anterior, crie um programa que abre o
arquivo criado e imprime as informações dos carros que
custem mais de R$ 20.000,00
Newton Spolaôr Manipulação de arquivos em C 37
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Considerações finais
1 Introdução
2 Arquivos texto em C
3 Arquivos binários em C
4 Considerações finais
Newton Spolaôr Manipulação de arquivos em C 38
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Considerações finais
Nesta aula foram apresentados conceitos relacionados a
arquivos
Também foram resolvidos exercícios envolvendo esse
conceito
Newton Spolaôr Manipulação de arquivos em C 39
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Contato
newtonsp.unioeste@gmail.com
Newton Spolaôr Manipulação de arquivos em C 40
Introdução
Arquivos texto em C
Arquivos binários em C
Considerações finais
Referências bibliográficas
[1] HowStuffWorks. How the Large Hadron Collider works; 2016.
http://science.howstuffworks.com/science-vs-myth/everyday-
myths/large-hadron-collider6.htm.
[2] Khouri JHHE. Introdução à programação: conceitos e práticas;
2015.
Notas didáticas.
sca.unioeste-foz.br/ habib.
[3] Mattoso M. Introdução a banco de dados – o modelo relacional;
2015.
Notas didáticas.
http://www.cos.ufrj.br/ marta/BdRel.pdf.
[4] Wolf DF. Algoritmos; 2014.
Notas didáticas.
http://wiki.icmc.usp.br/index.php/Scc-101.
[5] Kelly-Bootle S.
Dominando o Turbo C.
2nd ed. Ciência moderna; 1989.
[6] Tutorialspoint. C - data types; 2014.
http://www.tutorialspoint.com/cprogramming/c_data_types.htm.
[7] Cplusplus. fwrite - C++ Reference; 2016.
http://www.cplusplus.com/reference/cstdio/fwrite/.
Newton Spolaôr Manipulação de arquivos em C 41
	Introdução
	Aula anterior em um breve olhar
	Motivação para arquivos
	Objetivo geral desta aula
	Arquivos texto em C
	Tipos de dados para arquivos texto
	Rotinas para arquivos texto
	Exercícios
	Arquivos binários em C
	Rotinas voltadas a arquivos binários
	Exercícios
	Considerações finais

Continue navegando