Neste artigo falaremos de funções de arquivo de operação em C, abertura de um arquivo, fechamento de um arquivo, o getw e funções putw, as funções fprintf e fscanf, o acesso aleatório a arquivos e função fseek.
Funções para operação de arquivos:
Função | Operação |
fopen() | Cria um novo arquivo Abre um arquivo existente |
fclose() | Fecha um arquivo em uso |
fgetc() | Lê um caractere de um arquivo |
fgets() | Lê uma string de um arquivo |
putc() | Escreve um caractere em um arquivo |
fprintf() | Writes a set of data values to a file |
fscanf() | Lê o arquivo em um tamanho definido |
getw() | Lê um inteiro de um arquivo |
putw() | Escreve um inteiro no arquivo |
fseek() | Aponto para uma posição definida em um arquivo |
ftell() | Mostra a posição atual em bytes |
rewind() | Aponta para o inicio do arquivo |
fopen()
Para criar ou abrir um arquivo ou para leitura e/ou escrita:
FILE *arq; arq = fopen("nome-do-arquivo","modo");
Em “modo” usamos um paramêtro que defini quais operações serão feitas no arquivo tais como leitura e/ou gravação, tais parâmetros são definidos como:
R – Abrir para leitura.
R+ – Leitura e gravação.
W – Gravação, caso um arquivo já exista ele será subscrito, caso o contrário um novo será criado.
W+ – Gravação e leitura, caso um arquivo já exista ele será subscrito, caso o contrário um novo será criado.
RB – Leitura em arquivo binário.
RB+ – Leitura e gravação em arquivo binário.
WB – Gravação em arquivo binário, caso um arquivo já exista ele será subscrito, caso o contrário um novo será criado.
WB+ – Gravação e leitura, caso um arquivo já exista ele será subscrito, caso o contrário um novo será criado.
fclose()
Um arquivo aberto usando a função fopen() pode ser fechado com a função fclose():
FILE *arq; arq = fopen("masterdaweb.txt", "r"); fclose(arq); // Fecha o arquivo
fgetc()
A função fgetc() lê um único caractere de um arquivo.
fgetc(arq);
O exemplo acima lê um caractere do arquivo arq.
fgets()
A função fgets() lê até o final de uma linha caso o tamanho de definido no parâmetro da função seja suficiente, caso o contrário lê o tamanho definido.
char nome[100]; fgets(nome, sizeof(nome), arq);
O exemplo acima armazena o que foi lido na variável nome.
putc()
Escreve um caractere no arquivo.
putc ('a', arq);
O exemplo acima escreve a letra ‘a‘ no arquivo arq.
getw() e putw()
São semelhantes às funções GETC e PUTC e são usados para ler e escrever valores inteiros:
FILE *arq; arq = fopen("masterdaweb.txt","w+"); putw(inteiro,arq); getw(arq);
fprintf() e fscanf()
As funções fprintf e fscanf são idênticas às funções printf e scanf, a diferença é que são usadas em arquivos.
fprintf(arq,%s%d%f”,nome,idade,7.5); fscanf(arq,"%s%d”,nome,&idade");
fseek()
Aponta para um posição contada em bytes a partir de uma determinada posição:
fseek(arq, 50, SEEK_SET);
O exemplo acima aponta para a posição de 50 bytes contadas a partir de SEEK_SET (inicio do arquivo).
SEEK_SET – Início do arquivo.
SEEK_CUR – Posição atual.
SEEK_END – Final do arquivo.
ftell()
Mostra a posição atual no arquivo, contado a partir do início do arquivo.
ftell(arq);
rewind()
Aponta para o inicio do arquivo.
rewind(arq);
Olá,
Esqueceu de citar as fread, fwrite que são muito usadas acadêmicamente.
At +