Buscar

algoritmos-gravar em arquivo

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 11 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 11 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 11 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

Algoritmos e Estruturas
de dados
Trabalhar com arquivos em C
Prof. Dr. Fa´bio Rodrigues de la Rocha
(Trabalhar com arquivos em C) 1 / 11
Arquivos - Introduc¸a˜o
Tipos de Arquivos
Podemos dividir os arquivos em 2 tipos: Arquivos Texto e arquivos
bina´rios.
Arquivos Texto sa˜o arquivos que na˜o possuem um formato
definido, sendo composto apenas por sequencias de
bytes. Podemos ler e escrever sequencias de bytes em
arquivos de forma semelhante a ler strings do teclado e
escrever strings na tela. Caso seja armazenado um valor
ex: 1234567 esse nu´mero gastara´ 7 bytes pois cada um
de seus d´ıgitos e´ representado como um caractere. No
windows um arquivo texto possue um caractere
marcador de fim de arquivo (Ascii 4).
(Trabalhar com arquivos em C) 2 / 11
Arquivos - Introduc¸a˜o
Tipos de Arquivos - continuac¸a˜o
Arquivos bina´rios sa˜o arquivos que possuem uma estrutura
definida atrave´s de um typedef ou struct e podemos ler
ou gravar elementos com estas estruturas. Podemos
tambe´m gravar o valor de varia´veis int, float, double,
etc. Caso seja armazenado o valor de nu´mero inteiro
1234567 esse nu´mero (que e´ um inteiro de 32 bits)
gastara´ 4 bytes de espac¸o pois um inteiro ocupa 4 bytes.
(Trabalhar com arquivos em C) 3 / 11
Arquivos - Formas de acesso
Arquivos podem ser acessos de 3 formas:
Sequencial E´ a forma mais simples, a leitura e gravac¸a˜o de dados
ocorre de forma cont´ınua em posic¸o˜es sequenciais (isto
e´, uma apo´s a outra).
Direto Na forma de acesso direto, pode-se acessar uma posic¸a˜o
”n” de um arquivo sem acessar as posic¸o˜es anteriores.
Indexado Utiliza a forma de acesso direto para criar um arquivo
auxiliar de ı´ndices. Este arquivo de ı´ndices sera´ utilizado
para faciliar o acesso ao arquivo direto.
(Trabalhar com arquivos em C) 4 / 11
Visa˜o dos arquivos
(Trabalhar com arquivos em C) 5 / 11
fopen () Abre um arquivo
fclose() Fecha um arquivo
fputc() e fputs() Escreve um caractere e uma string no arquivo
fgetc() e fgets() Leˆ um caractere e uma string de um arquivo
fseek() Posiciona o arquivo em um byte espec´ıfico
fprintf() E´ para um arquivo o que printf() e´ para o con-
sole
fscanf() E´ para um arquivo o que scanf() e´ para o con-
sole
(Trabalhar com arquivos em C) 6 / 11
feof() Verdadeiro se o fim de arquivo for encontrado
ferror() Verdadeiro se ocorreu um erro
rewind() Recoloca o ponteiro de registro (indicador de
posic¸a˜o) no in´ıcio do arquivo
remove() Apaga um arquivo
fflush() Descarrega um arquivo
fread() Leˆ sequencia de bytes de arquivo
fwrite() escreve sequencia de bytes em arquivo
ftell () Obte´m a posic¸a˜o atual no arquivo
(Trabalhar com arquivos em C) 7 / 11
fopen
Proto´tipo: FILE *fopen (char *nome do arquivo,char *modo);
O primeiro paraˆmetro ”nome do arquivo”: e´ o local onde o
arquivo se encontra ou se for criado, onde o arquivo deve ser
armazenado.
O segundo paraˆmetro ”modo”: especifica como o arquivo deve
ser aberto.
r Abre um arquivo texto para leitura.
w Abrir um arquivo texto para gravac¸a˜o.
a Adiciona dados ao final do arquivo
rb Abre um arquivo bina´rio para leitura.
wb Cria um arquivo bina´rio para escrita
ab Acrescenta dados bina´rios no fim do arquivo
(Trabalhar com arquivos em C) 8 / 11
Exemplo:Abrindo e fechando arquivos�
1 #include <stdio.h>
2
3 main()
4 {
5 char *str1 = "/mnt/wind/teste/dbase/dbase";
6 FILE *fp; /* D e c l a r a o da estrutura */
7 fp=fopen (str1 ,"wb"); /* o arquivo se chama
dbase e s t localizado no d i r e t r i o /
mnt/wind/teste/dbase */
8 if (!fp)
9 printf ("Erro na abertura do arquivo.");
10 else
11 printf("Arquivo aberto com sucesso.");
12
13 fclose(fp);
14 }� �
(Trabalhar com arquivos em C) 9 / 11
Exemplo:lendo e gravando�
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4
5 void main() {
6 FILE *p; int i;
7 char c, str [40] = "/mnt/wind/teste/facu/teste.txt";
8 char frase [80] = "Este e um arquivo chamado: ";
9 if (!(p = fopen(str ,"w"))) {
10 printf("Erro! I m p o s s v e l abrir o arquivo !\n");
11 exit (1);
12 }
13 strcat(frase , str);
14 for (i=0; frase[i]; i++) putc(frase[i],p);
15 fclose(p);
16 p = fopen(str ,"r");
17 c = getc(p); /* L o primeiro caracter */
18 while (!feof(p)) {
19 printf("%c",c); /* Imprime o caracter na tela */
20 c = getc(p); /* L um novo caracter no arquivo */
21 }
22 fclose(p); /* Fecha o arquivo */
23 }� �
(Trabalhar com arquivos em C) 10 / 11
Exemplo:lendo e gravando�
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 typedef struct {
5 int nome [20];
6 int telefone []
7 }REG;
8
9 void main() {
10 FILE *p; int i; char c, str [40] = "/mnt/wind/teste/facu/teste.txt";
11 char frase [80] = "Este e um arquivo chamado: ";
12 if (!(p = fopen(str ,"w"))) {
13 printf("Erro! I m p o s s v e l abrir o arquivo !\n");
14 exit (1);
15 }
16 strcat(frase , str);
17 for (i=0; frase[i]; i++) putc(frase[i],p);
18 fclose(p);
19 p = fopen(str ,"r");
20 c = getc(p); /* L o primeiro caracter */
21 while (!feof(p)) {
22 printf("%c",c); /* Imprime o caracter na tela */
23 c = getc(p); /* L um novo caracter no arquivo */
24 }
25 fclose(p); /* Fecha o arquivo */
26 }� �(Trabalhar com arquivos em C) 11 / 11

Outros materiais