linguagem c 10 arquivos
TRANSCRIPT
- 1. Linguagem C Arquivos Regis Pires Magalhes [email_address]
2. Arquivos
- Podem armazenar grande quantidade de informao;
- Dados so persistentes (gravados em disco).
3. Tipos de Arquivos
- Texto
-
- Armazena caracteres que podem ser mostrados diretamente na tela ou modificados por um editor de textos simples.
-
- Conhecido por arquivo seqencial.
-
- Tipo especial de arquivo que pode ser editado normalmente atravs de um editor de textos qualquer.
-
- dito seqencialporque a leitura tem que serfeita seqencialmente do incio ao fim do arquivo.
4. Tipos de Arquivos
- Binrio
-
- Seqncia de bits sujeita s convenes dos programas que o gerou.
-
- Conhecido por Arquivo randmico, ou de acesso aleatrio.
-
-
- possvelbuscar uma determinada informao em qualquer posio, sem necessidade de percorrer todo o arquivo at alcanar a informao desejada.
-
-
-
- O acesso a informao direto.
-
-
- Exemplos:
-
-
- Arquivos executveis, arquivos compactados, arquivos de registros.
-
5. Manipulao de Arquivos
- Passos:
-
- Criar um ponteiro para a estrutura FILE (definida em stdio.h)
-
- Abrir o arquivo.
-
- Ler ou gravar dados no arquivo.
-
- Fechar o arquivo.
6. Escrita de Arquivo Texto #include intmain() { FILE*arq; arq =fopen ( "teste1.txt" ,"w" ); fprintf (arq,"Ola, Mundo!!! " ); fclose (arq); return0; } 7. Leitura de Arquivo Texto #include intmain() { FILE*arq; charc; arq =fopen ( "teste.txt" ,"r" ); c = getc(arq); while(c != EOF) { printf ( "%c" , c); c = getc(arq); } fclose (arq); return0; } 8. Somatrio dos nmeros de um arquivo #include intmain() { FILE*arq; intnumero, soma = 0; arq =fopen ( "numeros.txt" ,"r" ); while( fscanf (arq,"%d" , &numero) != EOF) { soma = soma + numero; } printf ( "A soma e: %d " , soma);fclose (arq); return0; } 9. Funes
- fopen("nome", "modo")
-
- Abre um arquivo e retorna um ponteiro para ele.
-
- Caso no consiga abrir o arquivo, retorna NULL.
- fprintf(fp, "formato", arg1, ...)
-
- Escreve para um arquivo
- fclose(fp)
-
- Fecha um arquivo
- getc(fp)
-
- Obtm um caractere.
- fscanf(fp, "formato", arg1, ...)
-
- L de um arquivo.
- fwrite(*prt, tamanho_bloco , n, fp)
-
- Escreve n blocos de *ptr para o arquivo.
10. Funes
- fread(*ptr, tamanho_bloco, n, fp)
- fseek(fp, posicao, modo)
-
- Altera a posio no arquivo.
-
- Deslocamento relativo ao:
-
-
- SEEK_SET incio do arquivo
-
-
-
- SEEK_CUR ponto inicial
-
-
-
- SEEK_END final do arquivo
-
- fflush(fp)
-
- Realiza a gravao efetiva do arquivo
- ftell(fp)
-
- Indica a posio corrente do ponteiro do arquivo.
11. Modos de Operao 12. Salvando uma estrutura #include #include structpessoa { char nome [50]; int idade ; }; typedef structpessoaPessoa ; intmain() { FILE*arq; arq =fopen ( "pessoas.txt" ,"ab" ); Pessoap; printf ( "Digite um nome: " ); gets (p. nome ); printf ( "Digite a idade: " ); scanf ( "%d" , &p. idade ); fwrite (&p,sizeof ( Pessoa ), 1, arq); fclose (arq); return0; } 13. Lendo todo o arquivo #include #include structpessoa { char nome [50]; int idade ; }; typedef structpessoaPessoa ; intmain() { FILE*arq; arq =fopen ( "pessoas.txt" ,"rb" ); Pessoap; while ( fread (&p,sizeof ( Pessoa ), 1, arq) != 0) { printf ( "Nome: %s - Idade: %d " , p. nome , p. idade ); } fclose (arq); return0; }