Modelo de slides

1.268 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.268
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
35
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Modelo de slides

  1. 1. Linguagem CArquivosRegis Pires Magalhãesregis@cefetpi.br
  2. 2. Arquivos Podem armazenar grande quantidade deinformação; Dados são persistentes (gravados em disco).
  3. 3. Tipos de Arquivos Texto Armazena caracteres que podem ser mostradosdiretamente na tela ou modificados por um editorde textos simples. Conhecido por arquivo seqüencial. Tipo especial de arquivo que pode ser editadonormalmente através de um editor de textosqualquer. É dito seqüencial porque a leitura tem que serfeita seqüencialmente do início ao fim do arquivo.
  4. 4. Tipos de Arquivos Binário Seqüência de bits sujeita às convenções dosprogramas que o gerou. Conhecido por Arquivo randômico, ou de acessoaleatório. É possível buscar uma determinada informação emqualquer posição, sem necessidade de percorrer todo oarquivo até alcançar a informação desejada. O acesso a informação é direto. Exemplos: Arquivos executáveis, arquivos compactados, arquivosde registros.
  5. 5. Manipulação de Arquivos Passos: Criar um ponteiro para a estrutura FILE (definidaem stdio.h) Abrir o arquivo. Ler ou gravar dados no arquivo. Fechar o arquivo.
  6. 6. Escrita de Arquivo Texto#include <stdio.h>int main() {FILE *arq;arq = fopen("teste1.txt", "w");fprintf(arq, "Ola, Mundo!!!n");fclose(arq);return 0;}
  7. 7. Leitura de Arquivo Texto#include <stdio.h>int main() {FILE *arq;char c;arq = fopen("teste.txt", "r");c = getc(arq);while (c != EOF) {printf("%c", c);c = getc(arq);}fclose(arq);return 0;}
  8. 8. Somatório dos números de um arquivo#include <stdio.h>int main() {FILE *arq;int numero, soma = 0;arq = fopen("numeros.txt", "r");while (fscanf(arq, "%d", &numero) != EOF) {soma = soma + numero;}printf("A soma e: %dn", soma);fclose(arq);return 0;}
  9. 9. Funções fopen("nome", "modo") Abre um arquivo e retorna um ponteiro para ele. Caso não consiga abrir o arquivo, retorna NULL. fprintf(fp, "formato", arg1, ...) Escreve para um arquivo fclose(fp) Fecha um arquivo getc(fp) Obtém 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. 10. Funções fread(*ptr, tamanho_bloco, n, fp) fseek(fp, posicao, modo) Altera a posição no arquivo. Deslocamento relativo ao: SEEK_SET – início do arquivo SEEK_CUR – ponto inicial SEEK_END – final do arquivo fflush(fp) Realiza a gravação efetiva do arquivo ftell(fp) Indica a posição corrente do ponteiro do arquivo.
  11. 11. Modos de Operação
  12. 12. Salvando uma estrutura#include <stdio.h>#include <string.h>struct pessoa {char nome[50];int idade;};typedef struct pessoa Pessoa;int main() {FILE *arq;arq = fopen("pessoas.txt", "ab");Pessoa p;printf("Digite um nome: ");gets(p.nome);printf("Digite a idade: ");scanf("%d", &p.idade);fwrite(&p, sizeof(Pessoa), 1, arq);fclose(arq);return 0;}
  13. 13. Lendo todo o arquivo#include <stdio.h>#include <string.h>struct pessoa {char nome[50];int idade;};typedef struct pessoa Pessoa;int main() {FILE *arq;arq = fopen("pessoas.txt", "rb");Pessoa p;while(fread(&p, sizeof(Pessoa), 1, arq) != 0) {printf("Nome: %s - Idade: %dn", p.nome, p.idade);}fclose(arq);return 0;}

×