Linguagem C 10 Arquivos
Upcoming SlideShare
Loading in...5
×
 

Linguagem C 10 Arquivos

on

  • 28,811 views

 

Statistics

Views

Total Views
28,811
Views on SlideShare
28,596
Embed Views
215

Actions

Likes
4
Downloads
773
Comments
7

2 Embeds 215

http://www.slideshare.net 213
http://webcache.googleusercontent.com 2

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

17 of 7 Post a comment

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Tente: fopen(NOMEARQUIVO, 'w')
    Are you sure you want to
    Your message goes here
    Processing…
  • Ola amigo, como vai??
    Desculpa chegar assim com uma dúvida, mas estou realmente precisando...
    Estou desenvolvendo um sisteminha para cadastro de clientes usando struct e gravando os dados em disco. Meu problema está sendo na função que altera um registro... Embora eu posicione o ponteiro do arquivo onde eu quero sobreescrever dados, não consigo pois uso a função fopen(NOMEARQUIVO, 'a'), e com a instruçao 'a' ele automaticamente escreve no final do arquivo, e nao na posição solicitada... poderia ajudar?
    Are you sure you want to
    Your message goes here
    Processing…
  • @samuelsalomao14 Clique no link Save, salve o arquivo e depois abra com o LibreOffice.
    Are you sure you want to
    Your message goes here
    Processing…
  • como posso baixar este tutorial
    ???
    Are you sure you want to
    Your message goes here
    Processing…
  • vai para o email
    esse site e massa de mais
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Linguagem C 10 Arquivos Linguagem C 10 Arquivos Presentation Transcript

    • Linguagem C Arquivos Regis Pires Magalhães [email_address]
    • Arquivos
      • Podem armazenar grande quantidade de informação;
      • Dados são persistentes (gravados em disco).
    • Tipos de Arquivos
      • Texto
        • Armazena caracteres que podem ser mostrados diretamente na tela ou modificados por um editor de textos simples.
        • Conhecido por arquivo seqüencial.
        • Tipo especial de arquivo que pode ser editado normalmente através de um editor de textos qualquer.
        • É dito seqüencial porque a leitura tem que ser feita seqüencialmente do início ao fim do arquivo.
    • Tipos de Arquivos
      • Binário
        • Seqüência de bits sujeita às convenções dos programas que o gerou.
        • Conhecido por Arquivo randômico, ou de acesso aleatório.
          • É possível buscar uma determinada informação em qualquer posição, sem necessidade de percorrer todo o arquivo até alcançar a informação desejada.
          • O acesso a informação é direto.
        • Exemplos:
          • Arquivos executáveis, arquivos compactados, arquivos de registros.
    • Manipulação 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.
    • Escrita de Arquivo Texto #include <stdio.h> int main() { FILE *arq; arq = fopen ( &quot;teste1.txt&quot; , &quot;w&quot; ); fprintf (arq, &quot;Ola, Mundo!!! &quot; ); fclose (arq); return 0; }
    • Leitura de Arquivo Texto #include <stdio.h> int main() { FILE *arq; char c; arq = fopen ( &quot;teste.txt&quot; , &quot;r&quot; ); c = getc(arq); while (c != EOF) { printf ( &quot;%c&quot; , c); c = getc(arq); } fclose (arq); return 0; }
    • Somatório dos números de um arquivo #include <stdio.h> int main() { FILE *arq; int numero, soma = 0; arq = fopen ( &quot;numeros.txt&quot; , &quot;r&quot; ); while ( fscanf (arq, &quot;%d&quot; , &numero) != EOF) { soma = soma + numero; } printf ( &quot;A soma e: %d &quot; , soma); fclose (arq); return 0; }
    • Funções
      • fopen(&quot;nome&quot;, &quot;modo&quot;)
        • Abre um arquivo e retorna um ponteiro para ele.
        • Caso não consiga abrir o arquivo, retorna NULL.
      • fprintf(fp, &quot;formato&quot;, arg1, ...)
        • Escreve para um arquivo
      • fclose(fp)
        • Fecha um arquivo
      • getc(fp)
        • Obtém um caractere.
      • fscanf(fp, &quot;formato&quot;, arg1, ...)
        • Lê de um arquivo.
      • fwrite(*prt, tamanho_bloco , n, fp)
        • Escreve n blocos de *ptr para o arquivo.
    • 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.
    • Modos de Operação
    • 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 ( &quot;pessoas.txt&quot; , &quot;ab&quot; ); Pessoa p; printf ( &quot;Digite um nome: &quot; ); gets (p. nome ); printf ( &quot;Digite a idade: &quot; ); scanf ( &quot;%d&quot; , &p. idade ); fwrite (&p, sizeof ( Pessoa ), 1, arq); fclose (arq); return 0; }
    • 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 ( &quot;pessoas.txt&quot; , &quot;rb&quot; ); Pessoa p; while ( fread (&p, sizeof ( Pessoa ), 1, arq) != 0) { printf ( &quot;Nome: %s - Idade: %d &quot; , p. nome , p. idade ); } fclose (arq); return 0; }