Buscar

Manipulação de Arquivos em Linguagem C

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

1
Linguagem de Programação
Aula 6
Prof. Luis Gonzaga Paulo
Contextualização
� Em linguagem de programação C 
se trabalha com o conceito de 
fluxo de manipulação de dados, 
também chamado de stream, o 
que possibilita ao programador 
trabalhar com dispositivos de 
armazenamento
� Os dados podem ser manipulados 
de duas formas ou fluxos, 
denominados fluxos de texto e 
fluxos binários
Roteiro da Aula
� Arquivo
Arquivo
� Pode estar associado a qualquer
dispositivo de entrada e de 
saída; como exemplo: teclado, 
vídeo, impressora, disco rígido
etc.
� A manipulação de arquivos em 
linguagem de programação 
consiste em três fases:
1. abrir o arquivo
2. ler e/ou gravar as 
informações no arquivo
3. fechar o arquivo
2
Funções de Entrada e de Saída
� As funções mais usadas para 
manipulação de arquivos estão
armazenadas na biblioteca
stdio.h
Função Descrição
fopen( ) Abre um arquivo
fputc( )
Escreve um caractere em um 
arquivo
fgetc( ) Lê um caractere em um arquivo
fputs( )
Escreve uma string em um 
arquivo
fprintf( ) Equivalente ao comando printf()
Função Descrição
fscanf( ) Equivalente ao comando scanf()
rewind( ) Posiciona o arquivo no início
feof( )
Retornar verdadeiro se chegou 
ao final do arquivo
fclose( ) Fecha o arquivo
fread( ) Leitura de arquivos
Abertura de Arquivo
� Primeira operação que deve ser 
realizada na manipulação de 
arquivos
• Operação que associa um fluxo 
de dados a um arquivo
Abertura de Arquivo – fopen()
� Um arquivo pode ser aberto de 
diversas maneiras:
• leitura
• escrita
• leitura/escrita
• etc.
Sintaxe:
fopen(nome arquivo, modo de 
uso).
Nome arquivo = nome do arquivo
modo de uso = tipo do arquivo (ascii ou
binário) e objetivo de uso
(leitura, escrita, anexação)
3
13
Modos de utilização de arquivos
Modo Significado
r Abre um arquivo-texto para leitura
w Cria um arquivo-texto para escrita
a Anexa a um arquivo-texto
rb Abre um arquivo binário para leitura
wb Cria um arquivo binário para escrita
ab Anexa um arquivo binário
r+ Abre um arquivo-texto para leitura/escrita
w+ Cria um arquivo-texto para leitura/escrita
a+
Anexa ou cria um arquivo-texto para 
leitura/escrita 
r+b Abre um arquivo binário para leitura/escrita
w+b Cria um arquivo binário para leitura/escrita
a+b Anexa a um arquivo binário para leitura/escrita
Exemplo de Uso
14
Exemplo de Uso
15 16
// Programa que grava o nome de cinco alunos em um arquivo e
// depois le o arquivo e mostra os nomes escritos
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
main(){
FILE *p;
char c, str[30], frase[80] = "Este e um arquivo chamado: “; 
char alunos [5][50], mostratexto [50];
int i,j=0, cont=0;
// Le um nome para o arquivo a ser aberto: 
printf("\n\n Entre com um nome para o arquivo:\n");
gets(str);
// le os nomes dos alunos e coloca no vetor alunos
for (cont=0;cont<5;cont++)
{
printf ("\nInforme o nome do aluno %d: ", cont+1);
gets(alunos[cont]);
}
Exemplo de Uso
// abre o arquivo para gravacao
if (!(p = fopen(str,"w")))
// Caso ocorra algum erro na abertura do arquivo 
// damensagem e nao faz nada
{ 
printf("Erro! Impossivel abrir o arquivo!\n");
}
else {
// Se nao houve erro, grava o arquivo e o fecha ...
for (i=0; i<5; i++)
{
strcat(alunos[i], "\n"); 
fputs(alunos[i],p); 
} 
fclose(p); // fecha o arquivo ao final da gravacao
printf("\nTerminei de escrever, agora vou ler.\n");
// Abre novamente, agora para leitura 
p = fopen(str,"r");
//uma forma de mostrar
fgets(mostratexto, 50, p);
while (!feof(p))
{
printf("%s",mostratexto);
fgets(mostratexto, 50, p);
}
fclose(p); // Fecha o arquivo p
17
Exercício Prático
� Considere um arquivo tipo texto 
já gravado. Gere um novo 
arquivo com uma nova linha, com 
dados lidos do teclado, entre a 
terceira e a quarta linha desse 
texto. Mostre o conteúdo do 
arquivo original e do novo. 18
4
Possibilidade de Resposta
//copia o conteudo do arquivo original.txt em copia.txt
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 150
main(){ 
int i; 
char linha[MAX];
FILE *entrada, *saida;
entrada = fopen( "original.txt", "r" );
if(entrada){
saida = fopen( "copia.txt", "w" );
for (i=1;i<4;i++){
fgets(linha, MAX, entrada);//le as primeiras linhas
fputs(linha, saida ); // copia para o arquivo de saida
} 
printf("Informe o conteudo da linha a ser inserida: ");
gets(linha);
strcat(linha,"\n");
fputs(linha, saida ); // escreve a linha adicionada
19
// copia o resto do arquivo, sem alteracao
fgets(linha, MAX, entrada);
while(!feof(entrada) ) {
fputs( linha, saida );
fgets(linha, MAX, entrada);
}
fputs( linha, saida ); //para escrever a ultima linha (do EOF)
fclose( entrada );
fclose( saida );
}
else printf ("deu erro na abertura do arquivo original.txt\n");
system("pause"); 
}
20
Possibilidade de Resposta

Outros materiais