A linguagem nos permite acessar arquivos que estejam gravados no disco. Para isso, precisamos adicionar a biblioteca stdio.h, é nela que estão presentes as funções para podermos fazer as operações com os arquivos. Cada arquivo que desejarmos abrir, precisaremos declarar uma estrutura FILE com um ponteiro para ela. A declaração é feita da seguinte maneira:
FILE *fp;
Onde *fp é um ponteiro para a estrutura de arquivo.
A função fopen();
Para abrirmos arquivos, utilizamos a função fopen, que funciona da seguinte forma:
fp = fopen("nome_do arquivo.txt","tipo de abertura");
A função armazenar as informações no ponteiro para arquivo, que no nosso caso é *fp. Os argumentos da função fopen são o nome do arquivo e o tipo de abertura, que veremos a seguir.
*Tipos de abertura de arquivo
"r" - Abre para leitura(o arquivo já deve estar previamente criado)
"w" - Abre para gravação.(Se o arquivo já existir, será deletado e criado novamente. Se não existir, será criado.)
"r+" - Abre para leitura e gravação.(o arquivo deve estar previamente criado, e pode ser atualizado)
"w+" - Abre para leitura e gravação.(Se o arquivo já existir, será deletado e criado novamente. Se não existir, será criado.)
"a+" - Abre para atualização e para adicionar dados no final do arquivo(No arquivo que já existe, Se não existir, será criado.)
"rb" - Abre arquivo binário para leitura. (o arquivo já deve estar previamente criado).
"wb" - Abre arquivo binário para leitura e gravação.(Se o arquivo já existir, será deletado e criado novamente. Se não existir, será criado.)
"ab" - Abre arquivo binário para gravação (Os dados serão adicionados no final do arquivo que já existe, Se não existir, será criado.)
"rb+" - Abre arquivo binário para leitura e gravação (o arquivo deve estar previamente criado, e pode ser atualizado)
"wb+" - Abre arquivo binário para leitura e gravação (Se o arquivo já existir, será deletado e criado novamente. Se não existir, será criado.)
"ab+" - Abre arquivo binário para atualização (Os dados serão adicionados no final do arquivo que já existe, Se não existir, será criado.)
Lendo e escrevendo no arquivo
Para ler e escrever em arquivos, as funções mais comumente utilizadas são fscanf e fprintf. Elas se assemelham muito com as funções printf e scanf, porém como primeiro argumento temos que colocar o ponteiro para arquivo.
exemplos:
fprintf(ponteiro_para_arquivo,"Hi ppl!"); fscanf(ponteiro_para_arquivo,"%d", &variavel_int);
Posicionando o arquivo
Outro tópico importante é o posicionamento do arquivo. Por exemplo, se estamos escrevendo no arquivo e desejamos voltar para o seu início? Para isso existe a função fseek, que é usada da seguinte forma:
fseek (ponteiro_para_arquivo , offset , origem );
Onde offset é o número de bytes de deslocamento da origem, e origem é a posição onde o deslocamento é adicionado, onde temos as seguintes constantes:
SEEK_SET Início do arquivo
SEEK_CUR Posição atual do ponteiro para arquivo
SEEK_END Fim do arquivo
Fechando o arquivo
Quando acabarmos de fazer as operações com arquivos, precisamos fechá-lo, para isso é só usarmos a função fclose, que funciona da seguinte forma:
fclose(fp);
Onde fp é o ponteiro para arquivo.
Abaixo vai um exemplo completo:
#include <stdio.h>
int main()
{
/*Variável que utilizaremos para ler do arquivo*/
char ch[256];
/*Declaração do ponteiro para arquivo*/
FILE *fp;
/*abre arquivo para leitura e gravação*/
if((fp = fopen("arquivo.txt","w+")) != NULL)
{
/*Imprime na tela se o arquivo foi criado com sucesso*/
printf("Arquivo criado com sucesso!\n");
/*escrevendo no arquivo*/
fprintf(fp,"Hi ppl!");
/*reposicionando o arquivo para o início*/
fseek(fp,0,SEEK_SET);
/*Lendo o arquivo até o final*/
while(fscanf(fp,"%s",ch) != EOF)
{
printf("%s ",ch);
}
}
else
{
/*Se não conseguir criar o arquivo*/
printf("Nao foi possivel criar o arquivo!");
}
fclose(fp);
return 0;
}
Bom, esperam que tenham gostado, até a próxima :)
Vc tem os programas em C++? Tem como enviar para mim?
ResponderExcluirjoseassis1993[a]gmail.com , vlw!