Buscar

Manipulação de Arquivos em C

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Manipulação de Arquivos | Programação de Computadores 1 de 172014 © MdaS
ManipulaManipulaManipulaManipulaçççção de Arquivosão de Arquivosão de Arquivosão de Arquivos
� Verdades sobre o 4º Bimestre:
� Você precisa completar 20 pontos
� Você está de saco cheio cansado
� Você ainda se embaralha nos printf’s e scanf’s
� Pois bem, você pode não ficar entrando com os valores 
manualmente
� O próprio C poderá fazer isto por você!
Manipulação de Arquivos | Programação de Computadores 2 de 172014 © MdaS
ManipulaManipulaManipulaManipulaçççção de Arquivosão de Arquivosão de Arquivosão de Arquivos
� Na execução de um programa em C as informações:
� São perdidas quando o programa é fechado
� Podem conter uma grande quantidade de leitura de dados
� A manipulação de arquivos em C é uma alternativa 
eficaz em casos onde seja necessária:
� A leitura de um conjunto de dados de um arquivo
� A escrita de dados em um arquivo
� Para que ele seja armazenado em um local no disco
Manipulação de Arquivos | Programação de Computadores 3 de 172014 © MdaS
ArquivosArquivosArquivosArquivos
� Dentre diversos tipos de arquivos existentes no 
computador, a linguagem C trata dois tipos distintos de 
arquivos:
� Texto (.txt)
� Formado por caracteres da tabela ASCII
� Agrupamento em linhas
� Podem ser exibidos e modificados por editores de texto
� Binários (.bin)
� Formado por sequências de bits
� Ocupam menos espaço
� Informação criptografada
Manipulação de Arquivos | Programação de Computadores 4 de 172014 © MdaS
ManipulaManipulaManipulaManipulaçççção de Arquivosão de Arquivosão de Arquivosão de Arquivos
� Arquivos são tratados de um modo parecido com a 
alocação dinâmica
� Ou seja, o arquivo é, respectivamente:
� Declarado
� Aberto
� Executado (Leitura/Escrita)
� Fechado
Manipulação de Arquivos | Programação de Computadores 5 de 172014 © MdaS
DeclaraDeclaraDeclaraDeclaraçççção de Arquivosão de Arquivosão de Arquivosão de Arquivos
� Um arquivo é declarado como uma variável
� O tipo da variável arquivo é do tipo FILE
� Como é uma representação do arquivo, este tipo é um 
ponteiro
#include <stdio.h>
FILE *arq; //declaração do tipo arquivo texto
Manipulação de Arquivos | Programação de Computadores 6 de 172014 © MdaS
Abertura de Arquivo TextoAbertura de Arquivo TextoAbertura de Arquivo TextoAbertura de Arquivo Texto
� É feita através da função fopen()
� O nome do arquivo tem que estar na pasta onde o programa 
for salvo
� Necessita de um modo de acesso:
arq = fopen("nome.txt", "modo"); 
Variável recebe a função Modo de acesso
Nome do
arquivo
Cria ou adiciona um texto para escrita ou leituraa+
Cria ou adiciona um texto para escritaa
Cria ou sobrescreve um texto para escrita ou leituraw+
Cria ou sobrescreve um texto para escritaw
Abre um texto já existente para leitura e escritar+
Abre um texto já existente para leiturar
Manipulação de Arquivos | Programação de Computadores 7 de 172014 © MdaS
Leitura de um Arquivo TextoLeitura de um Arquivo TextoLeitura de um Arquivo TextoLeitura de um Arquivo Texto
� Basicamente, é feita pela função fscanf()
� É muito parecida com a sintaxe da função scanf()
� Apesar de ser um conjunto de caracteres, a leitura a partir do 
texto lê o conteúdo até encontrar um espaço
fscanf( arq, "%expressao", &var); 
Variável do arquivo Variável de leitura
Expressão de controle
fscanf( arq, "%d", &x); 
fscanf( arq, "%f", &y);
12 312.8 31 14 5
O 1º fscanf() irá ler, no arquivo texto, apenas o ’12’ e armazenará na variável x
O 2º fscanf() irá ler apenas o ’312.8’ e armazenará na variável y
Manipulação de Arquivos | Programação de Computadores 8 de 172014 © MdaS
ExemploExemploExemploExemplo
� Ler uma matriz quadrada de ordem 3 a partir do 
arquivo matriz.txt e exibir em tela a matriz
� O arquivo matriz.txt:
3 5 4
8 11 2
0 -1 7
Manipulação de Arquivos | Programação de Computadores 9 de 172014 © MdaS
Escrita de um Arquivo TextoEscrita de um Arquivo TextoEscrita de um Arquivo TextoEscrita de um Arquivo Texto
� É realizada pela função fprintf()
� É muito parecida com a sintaxe da função printf()
� A escrita de caracteres é feita de modo semelhante ao que é
feito na exibição em tela
fprintf( arq, "Texto ou %expressao", var); 
Variável do arquivo Variáveis que serão impressas
Texto a ser impresso
fprintf(arq2, "Dois numeros: %d e %f", x, y); 
Dois numeros: 12 e 312.8
O fprintf() irá escrever no arquivo texto, o 
conteúdo expresso entre aspas
Manipulação de Arquivos | Programação de Computadores 10 de 172014 © MdaS
ObservaObservaObservaObservaççççãoãoãoão
� O comando fscanf() só
funciona se o arquivo 
correspondente existir e 
estiver aberto
� O comando fprintf()
permite formatações na 
saída (assim como o 
printf()) e funciona 
apenas se o arquivo estiver 
aberto
Manipulação de Arquivos | Programação de Computadores 11 de 172014 © MdaS
Fechamento de um ArquivoFechamento de um ArquivoFechamento de um ArquivoFechamento de um Arquivo
� Todo arquivo texto deverá ser fechado
� Utiliza-se a função fclose()
� É fundamental fechar o arquivo para
� Salvar as alterações
� Liberar a memória ocupada
fclose(arq); 
Variável recebe a função
Manipulação de Arquivos | Programação de Computadores 12 de 172014 © MdaS
ExemploExemploExemploExemplo
� Escrever em um arquivo texto uma matriz quadrada de 
dimensão n, onde aij = i + j + 1
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
Manipulação de Arquivos | Programação de Computadores 13 de 172014 © MdaS
Pesquisa em ArquivosPesquisa em ArquivosPesquisa em ArquivosPesquisa em Arquivos
� Quando se abre um arquivo, o cursor está posicionado 
em seu início
� A movimentação do cursor poderá ser feita pela função 
fseek(arq, desloc, origem)
� arq: arquivo-texto aberto
� desloc: quantidade de bytes a ser avançada ou recuada
� origem: onde pode ser posicionado o cursor
� SEEK_SET: início do arquivo
� SEEK_CUR: posição atual
� SEEK_END: fim do arquivo
Manipulação de Arquivos | Programação de Computadores 14 de 172014 © MdaS
Outras FunOutras FunOutras FunOutras Funçççções para Arquivosões para Arquivosões para Arquivosões para Arquivos
� feof(arq): retorna se chegou o fim do arquivo (1) ou 
não (0)
� fgets(string, num_char, arq): lê uma string a 
partir de um arquivo texto
� string: a variável que receberá a string
� num_char: quantidade de caracteres a serem lidos
� arq: variável do arquivo texto
� fputs(string, arq): escreve no arquivo texto arq
o conteúdo do texto expresso em string, além de 
pular uma linha (\n)
Manipulação de Arquivos | Programação de Computadores 15 de 172014 © MdaS
Outras FunOutras FunOutras FunOutras Funçççções para Arquivosões para Arquivosões para Arquivosões para Arquivos
� rewind(arq): retorna ao começo do arquivo
� ferror(arq): verifica se há erro no arquivo-texto
� fflush(arq): descarrega da memória o arquivo
� fread(arq): leitura em arquivo binário
� fwrite(&var, numbytes, cont, arq): escrita 
em arquivo binário
Manipulação de Arquivos | Programação de Computadores 16 de 172014 © MdaS
ExemploExemploExemploExemplo
� (Pereira, 2010) Dado um conjunto de valores, trocar 
todos os elementos negativos por 0
FILE *in;
float valor;
in = fopen("dados.txt", "r+"); // abrir para edição
while (!feof(in))
{
fscanf(in, "%f", &valor);
if ( valor < 0.0 )
{
fseek(in, -sizeof(valor), SEEK_CUR); 
// voltar “1 posição”
fprintf(in, "%f", 0);
}
}
fclose(in);
Manipulação de Arquivos | Programação de Computadores 17 de 172014 © MdaS
ExercExercExercExercííííciociociocio
� Grupos devem ser definidos da seguinte maneira:
1. Gean / Julio / Gilberto
2. Alan / Andressa
3. Carolina / Rinaldo / Jessica
4. Masaichi / Jonatha
5. Fabio / Viviane
6. Layciele / Emanuely
7. Ananda / Lais
8. Natalia / Daiane
9. Daniel / Rayane
10. Juliana / Amanda
11. Guilherme / Maria
Manipulação de Arquivos | Programação de Computadores 18 de 172014 © MdaS
ExercExercExercExercíííício cio cio cio –––– Duplas Duplas Duplas Duplas íííímparesmparesmparesmpares
� O arquivo texto matrizes.txtarmazena os dados de 
duas matrizes quadradas com elementos reais. A 
primeira linha contém um valor inteiro correspondente 
a dimensão da primeira matriz, seguida pelos 
elementos da primeira matriz, por linhas. A seguir, 
outro valor inteiro representa a dimensão da segunda 
matriz, seguido pelos seus elementos.
� Escreva um programa que leia as informações do 
arquivo e armazene as duas matrizes reais, alocadas 
dinamicamente. Verifique se é possível realizar a 
soma das duas matrizes. Em caso positivo, armazene 
o resultado em arquivo texto
Manipulação de Arquivos | Programação de Computadores 19 de 172014 © MdaS
ExercExercExercExercíííício cio cio cio –––– Duplas paresDuplas paresDuplas paresDuplas pares
� Imprima em um arquivo-texto a tabela de valores da 
função f(x) no intervalo [-20, 20] de 0,5 a 0,5, sendo 
que:
� Os valores devem estar formatados com 2 casas 
decimais alinhadas em formato de tabela








>+−
≤<
≤<−
−≤−
==
π
ππ
π
3124²
3)cos()sin(
42
4,
2
)(
xxx
xxx
x
x
x
yxf
x

Outros materiais