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.

[ Hits: 131.020 ]

Por: Matheus Santana Lima em 13/11/2008


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:

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

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.
Linux: Manipulação de arquivos em C++
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.

Página anterior     Próxima página

Páginas do artigo
   1. O que são arquivos?
   2. Manipulação de arquivos - Como funciona?
   3. O que são as classes iostream e fstream.h
   4. Exemplo de gravação - (ofstream) - Gravando um registro
   5. Exemplo de gravação - (ifstream) - Lendo um registro
   6. Exemplo de gravação - (ofstream) - Gravando vários registros
   7. Exemplo de gravação - (ifstream) - Lendo vários registros
   8. Exemplo de gravação e leitura - (fstream)
Outros artigos deste autor

Análise do Mandriva Free 2006 - Conhecendo melhor o sistema

Criando Fluxogramas? Use o Dia!

Análise do Syllable, mais um interresante sistema operacional livre

Certificação Linux, minha experiência com a LPI 101

Childsplay - Suite completa de jogos para a educação infantil

Leitura recomendada

Manipulando arquivos em C (parte 1)

Manipulação de imagens no formato PPM

Manipulando arquivos em C (parte 2)

Ensaio acerca de bibliotecas de código aberto para abstração de acesso a banco de dados em linguagem C++

Programando com uma granada de mão: uma visão da linguagem C

  
Comentários
[1] Comentário enviado por marcrock em 13/11/2008 - 15:21h

Muito bom cara !!!!
Você foi bem objetivo, mesmo eu sem grandes conhecimentos de C++ entendi tudo !

Até mais .

[2] Comentário enviado por vsenna em 17/11/2008 - 02:25h

Muito bom seu texto, está escrito de forma bem clara!

[]'s

[3] Comentário enviado por andrezc em 11/04/2010 - 19:35h

Há alguns erros. Por exemplo, no primeiro código faltou uma biblioteca, a cstring, para usar a função strcpy(). E você usou bibliotecas da linguagem C, como stdio.h. O correto seria:

#include <cstdio>

mesma coisa com

#include <fstream.h>

o correto seria:

#include <fstream>


André
[]'s

[4] Comentário enviado por [email protected] em 16/06/2011 - 12:36h

como faço um programa em c++ que verifique quais as letras do alfabeto estao faltando em um texto por favome ajude envie para:[email protected]

[5] Comentário enviado por DarthVictor em 26/06/2011 - 13:56h

Muito bom. Apesar de sempre ter usado #include <cstdlib.h>, fprinf, fscanf, etc; em C++. Gosto mais das funções em C e muitos programas tem de ser escritos orientado a objetos.

[6] Comentário enviado por LucianoAlexandre em 15/03/2012 - 07:41h

Legal, muito bom o artigo!!!

[7] Comentário enviado por CiroboyBR em 15/05/2015 - 05:42h

Bem fácil de entender. vlw pelo tuto.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts