Arquivos de acesso aleatório em C ++

Arquivos de acesso aleatório em C ++

Implementar o código de um arquivo aleatório no C ++ não é uma tarefa fácil, especialmente no sistema operacional Linux, mas pode ser feito se você tiver funções de processamento de arquivos. Este artigo usará uma estrutura simples de arquivo suportada pela linguagem de programação C ++ usando códigos de origem no sistema operacional Linux.

Essa ideia será explicada usando o sistema operacional Linux; Assim, você deve ter o Ubuntu instalado e configurado no seu PC. Então, depois de baixar e instalar a caixa virtual, você precisará configurá -la. Agora você precisará adicionar o arquivo ubuntu a ele. Você pode ir ao site oficial do Ubuntu e baixar o arquivo apropriado para sua máquina e sistema operacional. Levará várias horas para instalar e você deve configurá -lo no sistema virtual.

Utilizamos o Ubuntu 20.04, mas você pode usar a versão mais recente. Você precisará ter um editor de texto e acesso a um console Linux para concluir a implementação, pois poderemos ver o resultado dos códigos de origem no terminal através da consulta.

Acesso ao arquivo aleatório

Criamos um aplicativo para acessar informações sobre arquivos aleatoriamente. Em um arquivo, acessamos as informações e o acesso aleatório fornece ao usuário a busca instantaneamente o registro, e isso é feito em qualquer ordem. Acesso aleatório também fornece usabilidade para localizar os dados imediatamente. Este fenômeno é útil em muitos aspectos de nossa vida diária. Por exemplo, em sistemas bancários, de reserva, esse conceito é usado para buscar o registro oportuno. A linguagem de programação C ++ não está envolvida em impor nenhuma estrutura em um arquivo. Então o acesso aleatório deve começar do zero. Muitas técnicas são usadas para esse fim, mas a mais simples é usar o registro com um comprimento fixo.

Em C ++, o sistema de arquivos pode usar três classes presentes no arquivo de cabeçalho do fluxo.

  • Ofstream: É uma classe de fluxos que nos faz escrever nos arquivos.
  • Ifstream: É usado quando o usuário deseja ler os dados apenas do arquivo.
  • FStream é usado para fluxos de entrada e saída de e para o arquivo.

Agora estamos indo para alguns exemplos para explicar o conceito de acesso aleatório.

Exemplo

Este exemplo lida com a abertura do arquivo e a adição de dados a ele. Após a adição, os dados são exibidos como uma saída no terminal. A abertura do arquivo depende de duas situações. Um está abrindo o arquivo já existente e escrevendo dados nele. Enquanto outra condição é criar um novo arquivo para adicionar o registro nele. Primeiro, explicaremos a situação em que um arquivo já existente é editado adicionando os dados. Duas bibliotecas de "iostream" e "fStream" são usadas.

# incluir

No programa principal, criamos objetos de "ofstream". Este objeto é usado para abrir o arquivo.

# fout.abrir arquivo.TXT")

““Arquivo.TXT”É um arquivo já criado. Este arquivo será aberto. Usamos o arquivo com os dados; portanto, de acordo com a situação, nosso programa C ++ foi projetado para excluir os dados já presentes no arquivo e, em seguida, os novos dados são adicionados com sucesso. Aqui um loop é usado para garantir a abertura do arquivo. Uma coisa que deve ser mencionada aqui é que, como nosso arquivo contém dados anteriores, é necessário exibir o arquivo antes de escrever os novos dados através do terminal.

Essas 4 linhas já estão presentes. Mas estes serão excluídos quando o novo registro for inserido. Agora voltando ao código -fonte.

Quando o arquivo é executado, o usuário é solicitado a inserir seus dados. À medida que os dados são inseridos no terminal, esse registro também é adicionado ao arquivo.

# GetLine (CIN, linha);

Quando o programa for executado, o usuário continuará adicionando os dados. Para encerrar ou parar de entrar no registro, é preciso ter essa condição para parar o loop. Então, usamos uma estatura IF aqui. Isso verifica se o usuário insere a chave "q", que significa sair, então o sistema para de adicionar dados ainda.

If (linha == "q")

Quebrar;

A declaração 'Break' é usada para interromper mais execução. Como descrevemos, os dados do terminal são adicionados ao arquivo; Isso é feito pelo objeto do Fream que criamos.

# fout<

Depois de escrever os dados no arquivo, iremos fechá -los usando o mesmo objeto. Até agora, usamos o objeto de "ofstream" para escrever no arquivo. Para ler os dados do arquivo, precisamos criar um objeto de 'ifstream', e isso está bem.

# ifstream fin;

Depois de criar o objeto, agora abriremos o arquivo, fornecendo o nome do arquivo.

Fin.abrir arquivo.TXT")

Usamos um loop de tempo para escrever os dados; Da mesma forma, precisamos de um loop de tempo para ler os dados do arquivo até o final do terminal. Desta vez, o registro é buscado do arquivo para o terminal do console. Em seguida, feche o arquivo através do objeto.

# fin.fechar();

Depois de fechar o arquivo, vá para o terminal e use o compilador G ++ para compilar o código.

$ g ++ -o aleatório aleatório.c
$./ aleatório

Aleatório. C é o nome do arquivo em que escrevemos o código C ++. Quando executamos o arquivo, você pode ver que novos dados são digitados pelo usuário. Quando os dados a serem inseridos são concluídos, o usuário precisa usar 'q' para sair. Como é exibido na imagem abaixo do citado, pressione Q.

Agora, quando o usuário pressiona Q, os dados serão parados de inserir no arquivo e, em seguida, o controle chega ao “ifstream” para ler os dados do arquivo. Agora o arquivo está fechado. Em 'Q', o arquivo será aberto para exibir os dados inseridos para que os dados sejam exibidos novamente após mostrar a palavra -chave 'q'.

Agora vamos ao gerenciador de arquivos e vemos o arquivo. Os dados são inseridos e o anterior é removido.

Por outro lado, se não tivermos nenhum arquivo e usarmos um nome aleatório, um novo arquivo será criado com esse nome.

Por exemplo, aqui, o nome do arquivo é usado 'amostra.TXT'. Em vez de 'arquivo.TXT'. Você pode ver que é criado automaticamente na pasta. Ao abri -lo, ele exibe o mesmo texto em que você entrou.

Acesso aleatório do arquivo através de SeekG () e SeekP ()

Nas duas funções, em Seekg, 'G' significa 'Get', e em SeekP, 'P' significa 'Put'. Ele contém dois parâmetros. Um é usado para determinar o número de bytes que devem mover o ponteiro do arquivo no arquivo.

Conclusão

Este artigo foi escrito sobre o acesso aleatório do arquivo em c++. O sistema operacional que usamos é o sistema operacional Linux. Todos os exemplos usados ​​aqui são explicados facilmente para remover a ambiguidade da mente do usuário em relação aos fluxos de entrada e saída. Esperamos que essa luta seja útil em perspectivas futuras.