Laboratório de Programação I: Arquivos (texto) em disco
1. Arquivos (texto) em discoArquivos (texto) em disco
Prof. Alex Camargo
alexcamargoweb@gmail.com
UNIVERSIDADE FEDERAL DO PAMPA
CAMPUS BAGÉ
LABORATÓRIO DE PROGRAMAÇÃO I
2. 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
3. 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
4. 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
5. 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
8. 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
10. 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
12. 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
15. 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
17. 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
19. 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: Fulano
Telefone: 53-99999999
Endereç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
20. 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
22. 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
24. 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ão
manteiga picanha
café 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