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.105 ]

Por: Matheus Santana Lima em 13/11/2008


Exemplo de gravação - (ofstream) - Gravando vários registros



#include <fstream.h>
#include <cstdlib>
#include <stdio.h>
#include <iostream>
using namespace std;
class alunos{
private:
int ra;
char nome[50];
public:
alunos();
void cadastra();
};
alunos :: alunos(){
ra = 1;
strcpy(nome,"");
}
void alunos :: cadastra(){

   cout << "Digite o RA: " << endl;
   cin >> ra;
   cout << "Digite o nome: "<< endl;
   cin >> nome;
}
int main(){

   int i;

//Aqui criamos o objeto 'fgrava', que faz referência ao objeto aluno.txt

   ofstream fgrava("alunos.txt");
//Aqui criamos o objeto 'cad1' usando a classe 'alunos'.
   alunos cad1;
   cout << "Deseja cadastrar um aluno? Tecle 0(zero) para sair e 1 para confirmar." << endl;
   cin >> i;

   while(i!=0){

      cad1.cadastra();//Lemos os dados com a função 'cadastra()'.
      fgrava.write( (char *)&cad1, sizeof(alunos));//Aqui gravamos o conteúdo do objeto 'cad1' em 'alunos.txt'.
//Usamos 'sizeof(alunos)' neste caso, para informar o tamanho do registro e posteriormente grava -lo no arquivo.
      cout << "Deseja cadastrar um aluno? Tecle 0(zero) para sair e 1 para confirmar." << endl;
      cin >> i;
   }

}

Resultado esperado do código acima:

Deseja cadastrar um aluno? Tecle 0(zero) para sair e 1 para confirmar.
1
Digite o RA:
23445
Digite o nome:
Lais
Deseja cadastrar um aluno? Tecle 0(zero) para sair e 1 para confirmar.
1
Digite o RA:
767553
Digite o nome:
Joao
Deseja cadastrar um aluno? Tecle 0(zero) para sair e 1 para confirmar.
0

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

Conheçendo o sistema operacional GNU/Fiwix

Os segredos da criptografia com o Gcipher

Criando Fluxogramas? Use o Dia!

Fazendo montagens com o Gimp

Mulheres na Informática: O Movimento LinuxChix BR

Leitura recomendada

Manipulação de imagens no formato PPM

Manipulando arquivos em C (parte 2)

Manipulando arquivos em C (parte 1)

Estudo de ponteiros para GNU/Linux

Tutorial SDL

  
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