Considere os seguintes dados a respeito de uma pessoa:
Considere o tipo de arquivo de dados com campos de tamanho fixo em bytes e registros de tamanho fixo em bytes
- Permita a gravação dos dados de várias pessoas em formato binário. Não é necessário armazenar todos os registros em memória para escrevê-los em uma única operação, você pode gravar os registros no arquivo a medida em que eles são lidos do teclado.
- Permita a recuperação dos dados, de todas as pessoas, armazenados no arquivo de dados, mostrando os dados de forma organizada na saída padrão para permitir a distinção dos campos e registros.
- Dado o valor de um RRN (número relativo do registro), recupere o registro mostrando seus dados de forma organizada na saída padrão para permitir a distinção dos campos.
A entrada do programa consiste em um comando a ser executado (1, 2 ou 3), o nome de um arquivo a ser manipulado e entradas adicionais para cada comando:
COMANDO 1: Recebe o número n de registros a serem lidos da entrada padrão e escritos no arquivo de saída. Além disso, recebe os n registros a serem gravados, cada um com seus campos separados em linhas diferentes.
Exemplo:
COMANDO 2:Não recebe entrada adicional.
Exemplo:
COMANDO 3:Recebe o RRN do registro a ser lido do arquivo.
Exemplo:
A saída para o comando 1 será feita utilizando a função binarioNaTela.
A saída para os comandos 2 e 3 devem ter o seguinte formato para cada registro printado:
Erros como arquivos inexistentes e RRNs inválidos devem apresentar saídas diferentes: para RRNs inválidos, a saída deverá ser “Não foi possível ler o arquivo”, enquanto que para arquivos inexistentes a saída deverá ser “Falha no processamento do arquivo”.
Os tamanhos dos campos do registro de pessoa são os seguintes:
O ‘\0’ das strings deve ser armazenado no arquivo de dados.
É necessário preencher o espaço restante do campo do registro com um caractere de lixo, que será o ‘$’.