Upload
alex-camargo
View
41
Download
2
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
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: 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
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
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: 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
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: 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
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