Ir ao conteúdo
  • Cadastre-se

Manipulação de arquivos .txt usando C++ e struct e ponteiros


Posts recomendados

Ola senhores!

antes de tudo...sou bastante leigo, mas bastante mesmo, comecei a aprender programação a pouco tempo...

mas tenho uma duvida que é simples, porém não achei uma solução na internet e nem em livros/ apostilas da faculdade. e coisa simples de como salvar um ponteiro com uma outra struct em seu campo dados em um arquivo .txt.

     a ideia é que quando eu abrir o programa, ele transfira os dados contidos no arquivo .txt para o ponteiro, sendo assim sendo trabalhado dentro do programa, e quando sair... ele atualiza o .txt com as modificações feitas na execução do programa.

 

vou enviar, até onde consegui ir:

 

#include "iostream"

#include "fstream"

#include "string"

using namespace std;
 
 struct cad{
 int mat;
 float sal;
 char nome[30];
 };
    struct pont {
    cad dado;
    pont *esq, *dir;
    };
 
int main (){
cad x;
pont * L;
L= NULL;
ofstream ponteiro;
ponteiro.open("ponteiro.txt", ofstream::app);  // no  modo APP, segundo o que achei na internet, seria o mais apropriado para atualizar o .txt no final
if(ponteiro.is_open())
               cout<< "\n não é possivel abrir o programa !";
               else{
               (??????????????) - // essa parte da leitura eu não consigo entender em C++
                                                // seria aqui a parte em que o .txt alimenta o ponteiro
}
cout<< "\n Matricula = ";          // já aqui seria  parte onde o programa adiciona mais um ponteiro e salva, que eu acho que esta errado :)
cin>> x.mat;
cout<< "\n Nome = ";
fflush(stdin);
gets(x.nome);
cout<< "\n salario = ";
cin>> x.sal;
pont*aux;
aux = new pont();
aux->dado=x;
aux-> esq=NULL;
aux->dir = (*L);
  if (*L!=NULL)
    (*L)->esq = aux;
    (*L)=aux;
ponteiro.close();
return 0;
}
 
sim, poderia usar funções, mas é só para fins educacionais :)
como disse é uma duvida simples, mas que estou quebrando a cabeça a cerca de 2 semanas U.u então resolvi recorrer ao forum


 

     
    

Link para o comentário
Compartilhar em outros sites

A lógica para manusamento do aquivo está errada. Estude o caso correto e depois faça suas implementações.

#include "iostream"#include "fstream"using namespace std;int main (){    //Aqui vão as variáveis para armazenar seus dados    ofstream ponteiro; //Ponteiro do arquivo    ponteiro.open("ponteiro.txt", fstream::app);  //'fstream::app' indica que dados serão adicionados no fim do arquivo    /** ofstream.open() cria uma arquivo se não achar um **/    if(ponteiro.is_open()) //Se foi possível abrir o arquivo    {        cout<< "Arquivo aberto!!!" << endl;    }    else //Se não foi possível abrir o arquivo    {        cout << "Nao foi possivel abrir o arquivo" << endl;        ponteiro.close(); //Destrói o ponteiro        return 0; //Fecha o programa com sucesso    }    //Aqui vão as intrução de leitura e escrita do arquivo...    return 0; //Fecha o programa com sucesso}

Qualquer dúvida, dá um toque. Falou.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!