Exercícios Resolvidos de Manipulando Arquivos

Ver Teoria

Enunciado

Faça um programa que requisite o ano atual ao usuário, abra um arquivo chamado “arq.txt” que contém um conjunto de registros formados por nomes e datas de nascimento, por exemplo:

E seja capaz de imprimir na tela o nome e a idade que essa pessoa terá ou têm nesse ano. Todas as impressões devem ser feitas no final do programa, ou seja, as informações de nome e idade devem ser armazenadas.

Passo 1

Como nós temos que realizar a impressão do nome e da idade de todas as pessoas do arquivo, começaremos o nosso programa criando uma estrutura que representará esse pessoa no programa:

Observe que a biblioteca string foi inclusa, uma vez que iremos trabalhar com strings nesse programa.

Passo 2

Após termos criado a nossa estrutura, podemos declarar todas as variáveis que nós utilizaremos:

Passo 3

Com as variáveis essenciais declaradas, iremos agora requisitar a entrada do ano atual ao usuário e abrir o arquivo “arq.txt” no modo de leitura:

Passo 4

Com o arquivo aberto, utilizaremos como condição de um laço de repetição a função fscanf para obter cada linha do arquivo enquanto EOF não for retornado:

Vale ressaltar que antes de novos loops do laço de repetição serem executados, as informações lidas do arquivo são repassadas para o vetor de estruturas do tipo i n f s P e s s o a i s que nós criamos na etapa de declaração das variáveis essenciais. Isso fará que mesmo que as variáveis presentes na função fscanf sejam substituídas por outros valores as informações passadas continuem sendo armazenadas para serem impressas no final do programa.

Ou seja, a cada loop a variável n o m e é copiada através da função strcpy da biblioteca string para o campo n o m e do índice i do vetor de estruturas do tipo i n f s P e s s o a i s chamado u s u a r i o s . O mesmo acontece com a idade, que é obtida através da subtração do ano atual pelo ano de nascimento daquele registro e armazenado no campo i d a d e da mesma estrutura.

Passo 5

Por fim, basta imprimirmos o nome e a idade dos registros presentes no arquivo acessando ao final do programa os campos n o m e e i d a d e de cada índice do vetor de estruturas do tipo i n f s P e s s o a i s :

Resposta

Ei, a resposta está no passo a passo :)