Your SlideShare is downloading. ×
0
Modelo de slides
Modelo de slides
Modelo de slides
Modelo de slides
Modelo de slides
Modelo de slides
Modelo de slides
Modelo de slides
Modelo de slides
Modelo de slides
Modelo de slides
Modelo de slides
Modelo de slides
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Modelo de slides

803

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
803
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
30
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Linguagem CArquivosRegis Pires Magalhãesregis@cefetpi.br
  • 2. Arquivos Podem armazenar grande quantidade deinformação; Dados são persistentes (gravados em disco).
  • 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. 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. 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. 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. 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. 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. 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. 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. Modos de Operação
  • 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. 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;}

×