Você está na página 1de 13

Ficheiros

Os ficheiros permitem gravar os dados de um programa de forma


permanente em formato digital.
Vantagens de utilizar ficheiros

Armazenamento permanente de dados: as informaes permanecem


disponveis mesmo que o programa que as gravou tenha sido encerrado, ou
seja, podem ser consultadas a qualquer momento.
Grande quantidade dados pode ser armazenada: A quantidade de dados que
pode ser armazenada depende apenas da capacidade disponvel da unidade
de armazenamento. Normalmente a capacidade da unidade de
armazenamento muito maior do que a capacidade disponvel na memria
RAM.
Acesso concorrente: Vrios programas podem aceder a um ficheiro de forma
concorrente.
A linguagem C trata os ficheiros como uma sequncia de bytes. Esta
sequncia pode ser manipulada de vrias formas e para tanto, existem
funes em C para criar, ler e escrever o contedo de ficheiros independente
de quais sejam os dados armazenados.

Tipos de Ficheiros
Em C trabalhamos com dois tipos
de Ficheiros:
1) Ficheiro texto: Armazena
caracteres
que
podem
ser
mostrados diretamente no ecran
ou modificados por um editor de
texto.
Exemplos de ficheiros texto:
documentos de texto, cdigo
fonte C, pginas XHTML.
2) Ficheiro binrio uma
sequncia de bits que obedece
regras do programa que o gerou.
Exemplos:
Executveis,
documentos do Word, ficheiros

O ponteiro para
Ficheiro

Em C, o ficheiro manipulado atravs de um ponteiro especial


para o ficheiro.
A funo deste ponteiro apontar a localizao de um
registro.
Sintaxe:
FILE < *ponteiro >
O tipo FILE est definido na biblioteca stdio.h.
Exemplo de declarao de um ponteiro para Ficheiro em C:
FILE *pont_arq;
Lembrando que FILE deve ser escrito em letras maisculas.

Operaes com Ficheiros


do tipo texto
Abertura de ficheiros.
Para trabalhar com um Ficheiro, a primeira operao necessria
abrir este ficheiro.
Sintaxe de abertura de Ficheiro:
< ponteiro > = fopen(nome do ficheiro,tipo de abertura);
A funo fopen recebe como parmetros o nome do Ficheiro a ser
aberto e o tipo de abertura a ser realizado.
Depois de aberto, realizamos as operaes necessrias e fechamos o
ficheiro.
Para fechar o ficheiro usamos a funo fclose.
Sintaxe de fechamento de Ficheiro
fclose< ponteiro >;

Tipos de abertura
de ficheiros
r: Permisso de abertura somente para leitura.
necessrio que o ficheiro j esteja presente no disco.

w: Permisso de abertura para escrita (gravao). Este


cdigo cria o ficheiro caso ele no exista, e caso o mesmo
exista ele recria o ficheiro novamente fazendo com que o
contedo seja perdido. Portanto devemos tomar muito
cuidado ao usar esse tipo de abertura.
a: Permisso para abrir um ficheiro texto para
escrita(gravao), permite acrescentar novos dados ao
final do ficheiro. Caso no exista, ele ser criado.

Problemas na
abertura de
ficheiros
Na prtica, nem sempre possvel abrir um ficheiro. Podem ocorrer
algumas situaes que impedem essa abertura, por exemplo:
Voc est tentando abrir um ficheiro no modo de leitura, mas o
ficheiro no existe;
Voc no tem permisso para ler ou gravar no ficheiro;
O ficheiro est bloqueado por estar sendo usado por outro programa.
Quando o ficheiro no pode ser aberto a funo fopen retorna o valor
NULL.
altamente recomendvel criar um trecho de cdigo a fim de verificar
se a abertura ocorreu com sucesso ou no.

Gravando dados
em ficheiros

A funo fprintf armazena dados em um ficheiro. Seu


funcionamento muito semelhante ao printf, a diferena principal
a existncia de um parmetro para informar o ficheiro onde os
dados sero armazenados.
Sintaxe:
fprintf(nome_do_ponteiro_para_o_ficheiro,
%s,variavel_string)

Leitura de ficheiros
Leitura caracter por caracter Funo getc()
Faz a leitura de um caracter no ficheiro.
Sintaxe:
getc(ponteiro_do_ficheiro);
Para realizar a leitura de um ficheiro inteiro caracter por caracter
podemos usar getc dentro de um lao de repetio.
do
{
//faz a leitura do caracter no ficheiro apontado por
pont_arq
c = getc(pont_arq);
//exibe o caracter lido na tela
printf("%c" , c);
}while (c != EOF);

Leitura de strings
Funo fgets()

utilizada
para
leitura de strings em
um ficheiro. Realiza a
leitura
dos
caracteres at o final
da
linha
quando
encontra
o
caracter \n. A leitura
efetuada de tal
forma que a string
lida armazenada
em um ponteiro do
tipo char. A funo
pode ser finalizada
quando encontrar o
final
do
ficheiro,
neste caso retorna o
endereo da string
lida.
Se
ocorrer
algum erro na leitura