Manipulação de arquivos em C++
Neste breve artigo faço uma apresentação do conceito de arquivos, como o sistema operacional os encara, em especial em sistemas Linux e como é sua manipulação em C++, com códigos de exemplo de leitura e/ou gravação dos mesmos.
Parte 2: Manipulação de arquivos - Como funciona?
Para a manipulação (leitura e/ou escrita) e criação de arquivo é necessário que façamos uma referência do mesmo à um espaço da memória. Para tanto, o C++ utiliza as classes iostream e fstream.h.
Para realizar gravação em arquivos, fazemos:
Para realizar leitura em arquivos, fazemos:
Para realizar leitura e gravação em arquivos, fazemos:
Manipulação de arquivos, é, de certa forma, parecida com a manipulação de vetores, ambos trabalham com o conceito de posição, a diferença se dá no fato de que arquivos não tem um limite de posições, ao contrário do que ocorre com vetores, assim, teoricamente, podemos adicionar novos registros até o limite físico do disco rígido. Podemos escolher a posição em que queremos trabalhar no arquivo, para tanto, usamos a função:
X deve receber a posição do registro no arquivo. Em C++, ao contrário do que ocorre em algoritmo, X não recebe 0, 1, 2, 3 ..., mas sim a posição do registro em forma binária. Para tanto, usamos o seguinte artifício:
Posteriormente ilustraremos como utilizar a função sizeof para o posicionamento do arquivo.
Para realizar gravação em arquivos, fazemos:
ofstream fgrava("livro.txt"); //O objeto fgrava faz referência ao arquivo livro.txt
Para realizar leitura em arquivos, fazemos:
ifstream fleitura("livro.txt"); //O objeto fleitura faz referência ao arquivo livro.txt
Para realizar leitura e gravação em arquivos, fazemos:
fstream fio;
fio.open("livro.txt"); //O objeto 'fio' recebe a referência ao arquivo livro.txt
fio.open("livro.txt"); //O objeto 'fio' recebe a referência ao arquivo livro.txt
Manipulação de arquivos, é, de certa forma, parecida com a manipulação de vetores, ambos trabalham com o conceito de posição, a diferença se dá no fato de que arquivos não tem um limite de posições, ao contrário do que ocorre com vetores, assim, teoricamente, podemos adicionar novos registros até o limite físico do disco rígido. Podemos escolher a posição em que queremos trabalhar no arquivo, para tanto, usamos a função:
<nome_da_objeto_de_entrada_e_saida_de_dados>.seekg(X);
X deve receber a posição do registro no arquivo. Em C++, ao contrário do que ocorre em algoritmo, X não recebe 0, 1, 2, 3 ..., mas sim a posição do registro em forma binária. Para tanto, usamos o seguinte artifício:
sizeof(nome_do_objeto_molde_do_registro)
Posteriormente ilustraremos como utilizar a função sizeof para o posicionamento do arquivo.
Você foi bem objetivo, mesmo eu sem grandes conhecimentos de C++ entendi tudo !
Até mais .