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!