Escolar Documentos
Profissional Documentos
Cultura Documentos
1. INTRODUÇÃO
ARQUIVO
rb Abre um arquivo binário para leitura. Igual ao modo "r" anterior, r+b Abre um arquivo binário para leitura e escrita. O mesmo que
só que o arquivo é binário. "r+" acima, só que o arquivo é binário.
wb Cria um arquivo binário para escrita, como no modo "w" anterior, w+b Cria um arquivo binário para leitura e escrita. O mesmo que
só que o arquivo é binário. "w+" acima, só que o arquivo é binário.
ab Acrescenta dados binários no fim do arquivo, como no modo "a" a+b Acrescenta dados ou cria uma arquivo binário para leitura e
anterior, só que o arquivo é binário. escrita. O mesmo que "a+" acima, só que o arquivo é binário.
ABERTURA
EXEMPLO
• Abre um arquivo para leitura e/ou escrita. Exemplo:
//Ponteiro para um arquivo
FILE *arquivo;
//Abertura de um arquivo texto para leitura
arquivo = fopen("exemplo.txt", "r");
//Verificacao da abertura
if (arquivo == NULL)
printf("Erro na abertura do arquivo!");
FECHAMENTO
FECHAMENTO | fclose
FILE *arquivo;
arquivo = fopen("exemplo.txt", "r+");
if (arquivo == NULL) {
printf( "Erro na abertura do arquivo");
exit(0);
}
//Após a utilização do arquivo, fechá-lo
(...)
fclose(arquivo);
LEITURA
LEITURA
Leitura de
Leitura de um Leitura de Leitura
blocos de
caractere de uma string de formatada de
dados de
um arquivo um arquivo um arquivo
um arquivo
LEITURA | getc
FILE *arquivo;
arquivo = fopen("exemplo.txt", "r");
if (arquivo == NULL) {
printf("Erro na abertura do arquivo!");
exit(0);
}
//Enquanto nao chegar ao final do arquivo, ler linhas
char *resultado, linha[101];
while(!feof(arquivo)) {
//Leitura de até 100 caracteres por linha ou até o '\n'
resultado = fgets(linha, 101, arquivo);
if (resultado != NULL) printf("%s", linha);
}
LEITURA | fread
SINTAXE: size_t fread(void *buffer, int n_bytes, int count, FILE *arquivo);
● Leitura de um bloco de dados de um arquivo.
● Armazena em buffer os count blocos de n_bytes lidos do arquivo.
● EXEMPLO
FILE *arquivo;
arquivo = fopen("exemplo.dat", "rb");
if(arquivo == NULL) {
printf("Erro na abertura do arquivo!");
exit(0);
}
//Ler um float do arquivo
float f;
if(fread(&f, sizeof(float), 1, arquivo) != 1)
printf("Erro na leitura do arquivo!");
printf(“%f”, f);
LEITURA | fscanf
SINTAXE: size_t fwrite(void *buffer, int n_bytes, int count, FILE *arquivo);
● EXEMPLO
FILE *arquivo;
arquivo = fopen("exemplo.txt", "w+");
if(arquivo == NULL) {
printf("Erro na abertura do arquivo!");
exit(0);
}
fputs("Isto eh um teste", arquivo);
//Posiciona o cursor logo após “Isto eh”
fseek(arquivo, 7, SEEK_SET);
fputs(" um experimento com arquivo texto.", arquivo);
fclose (arquivo);
ESCRITA E LEITURA
(Exemplo)
GRAVAÇÃO e LEITURA em arqivos binários | fwrite e fread
● Exemplo:
● O programa lê três valores tipo float, armazena em um vetor e grava os
valores em um arquivo. Depois faz a leitura do arquivo e exibe na tela.
#include <stdio.h>
#include <stdlib.h>
int main()
{
const int TAM = 3;
FILE *arquivo;
float gv[TAM], lv[TAM];
SINTAXE: size_t fwrite(void *buffer, int n_bytes, int count, FILE *arquivo);
● Escrita de um bloco de dados em um arquivo.
● Salva os count blocos de n_bytes de buffer no arquivo. Exemplo:
// continuação ...
// abre o arquivo para gravação
arquivo = fopen("dados.dat", "w+b");
if(arquivo == NULL) {
printf("Erro na abertura do arquivo!");
exit(0);
}
//Gravar tres valores tipo float no arquivo
if (fwrite(gv, sizeof(float), TAM, arquivo) != TAM)
printf("Erro na escrita no arquivo!");
fclose(arquivo);
LEITURA | fread
SINTAXE: size_t fread(void *buffer, int n_bytes, int count, FILE *arquivo);
● Leitura de um bloco de dados de um arquivo.
● Armazena em buffer os count blocos de n_bytes lidos do arquivo.