24
Arquivos (texto) em disco Arquivos (texto) em disco Prof. Alex Camargo [email protected] UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ LABORATÓRIO DE PROGRAMAÇÃO I

Laboratório de Programação I: Arquivos (texto) em disco

Embed Size (px)

Citation preview

Arquivos (texto) em discoArquivos (texto) em disco

Prof. Alex [email protected]

UNIVERSIDADE FEDERAL DO PAMPACAMPUS BAGÉ

LABORATÓRIO DE PROGRAMAÇÃO I

Manipulação de Arquivos em C

Até agora, foi visto a manipulação de dados em memória RAM.

A memória RAM é volátil. Algumas vezes é necessária a persistência dos dados, que é o

armazenamento não-volátil. Assim, o armazenamento não-volátil pode ser feito no HD,

através de arquivos.

Laboratório de Programação I – Arquivos (texto) em disco

Manipulação de Arquivos em C

O primeiro passo para manipular um arquivo em C, é abri-lo.

A linguagem C manipula arquivos em alto-nível ou baixo-nível. Durante a abertura do arquivo, a linguagem C necessita obter

do sistema operacional algumas informações sobre este arquivo.

Estas informações obtidas ficam armazenadas em um ponteiro.

Laboratório de Programação I – Arquivos (texto) em disco

Manipulação de Arquivos em C

Para manipular um arquivo em alto-nível, existem 4 grupos de funções:

1: Gravar e ler 1 caractere por vez: funções fputc() e fgetc() 2: Gravar e ler 1 linha por vez: funções fputs() e fgets() 3: Gravar e ler dados formatados: funções fprintf() e fscanf() 4: Gravar e ler blocos de bytes: funções fwrite() e fread()

Laboratório de Programação I – Arquivos (texto) em disco

fopen()

A abertura de arquivos em C é realizada através da função fopen.

Se houver algum erro, a função fopen retorna NULL.

mode é usado para determinar como o arquivo será tratado. Ex: entrada “r” (read) ou saída “w” (write)

Laboratório de Programação I – Arquivos (texto) em disco

fopen()

Laboratório de Programação I – Arquivos (texto) em disco

fopen()

Laboratório de Programação I – Arquivos (texto) em disco

Grupo 1: fputc()

A função fputc escreve um caracter char em um arquivo de saída.

O valor de retorno é o caracter, a menos que haja um erro, caso no qual o valor de retorno é EOF.

Laboratório de Programação I – Arquivos (texto) em disco

Grupo 1: fputc()

Laboratório de Programação I – Arquivos (texto) em disco

Grupo 1: fgetc()

A função fgetc retorna o próximo caracter char de um arquivo de entrada.

O valor de retorno é o próximo caracter do arquivo, EOF se o final do arquivo foi alcançado ou se ocorreu algum erro.

Laboratório de Programação I – Arquivos (texto) em disco

Grupo 1: fgetc()

Laboratório de Programação I – Arquivos (texto) em disco

Exercícios

Responda as seguintes questões referentes ao “Grupo 1: fputc() e fgetc()” de manipulação de arquivos em alto-nível em C.

1. Desenvolva um programa que recebe frases digitadas pelo usuário e grave este conteúdo, caracter a caracter (variável = getchar()), em um arquivo. O programa deve ser encerrado quando o usuário digitar a tecla ENTER (\n).

2. Desenvolva um programa que leia, caracter a caracter (variável=fgetc(arquivo)), o conteúdo de um arquivo. O programa deve ser encerrado quando o final do arquivo (EOF) for encontrado.

Algoritmos e Programação - Estruturas de repetição

Exercício 1

Algoritmos e Programação - Estruturas de repetição

Exercício 2

Algoritmos e Programação - Estruturas de repetição

Grupo 2: fputs()

A função fputs escreve caracteres string em um arquivo de saída.

Funciona como o puts(), que escreve na tela, porém escreve a string em um arquivo.

Laboratório de Programação I – Arquivos (texto) em disco

Grupo 2: fputs()

Laboratório de Programação I – Arquivos (texto) em disco

Grupo 2: fgets()

A função fgets lê uma string do arquivo especificado até que um caracter de nova linha (\n) ou tamanho-1 caracteres sejam lidos.

Funciona como gets(), que lê uma string de uma variável, porém lê a string em um arquivo.

A string resultante sempre terminará com "/0", por isto somente tamanho-1 caracteres, no máximo, serão lidos.

Laboratório de Programação I – Arquivos (texto) em disco

Grupo 2: fgets()

Laboratório de Programação I – Arquivos (texto) em disco

Exercícios

Responda as seguintes questões referentes ao “Grupo 2: fputs() e fgets()” de manipulação de arquivos em alto-nível em C.

1. Escreva um programa que peça o nome, telefone e endereço. O programa deve gravar o conteúdo em um arquivo texto da seguinte maneira:

Nome: FulanoTelefone: 53-99999999Endereço: Sete de Setembro, 12345

2. Desenvolva um programa que leia o conteúdo do arquivo do exercício anterior, para isso utilize o fgets().

Algoritmos e Programação - Estruturas de repetição

Grupo 3: fprintf()

A função fprintf escreve uma constante de caracteres em um arquivo de saída.

Funciona como o printf, sendo que a diferença é a saída padrão, que em fprintf é um arquivo e em printf é o monitor.

Laboratório de Programação I – Arquivos (texto) em disco

Grupo 3: fprintf()

Laboratório de Programação I – Arquivos (texto) em disco

Grupo 3: fscanf()

A função fscanf lê uma constante de caracteres em um arquivo de entrada.

Funciona como o scanf, sendo que a diferença é a entrada padrão, que em fscanf é um arquivo e em scanf é o teclado.

Laboratório de Programação I – Arquivos (texto) em disco

Grupo 3: fscanf()

Laboratório de Programação I – Arquivos (texto) em disco

Exercícios

Responda as seguintes questões referentes ao “Grupo 3: fprintf() e fscanf()” de manipulação de arquivos em alto-nível em C.

1. Escreva um programa que pergunte ao usuário o tipo de lista de compras ele deseja criar: Padaria ou Churrasco. O programa deve gravar os itens em um arquivo texto até o usuário digitar 0 (zero), ficando da seguinte maneira, por exemplo:

PADARIA CHURRASCO

pão carvãomanteiga picanhacafé refrigerante….. ...

2. Desenvolva um programa que leia o conteúdo do arquivo do exercício anterior, para isso utilize o fscanf().

Algoritmos e Programação - Estruturas de repetição