Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pontos

[Resolvido] Manpulação de arquivos com classes.

Recommended Posts

Olá pessoal, pimeiro deixo claro que será possivel encontrar erros de portugues aqui no que estou escrevedo mas não e o caso.

Ultimamente estou tendo um pequeno problema!

Não estou comsseguindo utilizar os dados dessa classe em uma funcão de manipulaçao de arquivos, o que quero fazer e o seguinte, utilizar os dados inseridos na classe para serem armazenados em uma função com a manipulaçao de arquivos como se ve abaixo.

Obs: O codigo esta uma bagunça mas depois que alguem me ajudar se possivel e o arrumarei corretamente do jeito que deveria estar...

 

 

#include<iostream.h>
#include <stdlib.h>
#include <string.h>
#include<fstream.h>
char finaliza, confirma;
int opcao;
class Pessoa
{
	char nome[], endereco[], cargo[], empresa[], cidade[], descricao[], preco[];
	int idade, telefone, estoque, cpf;
	float salario, preco_compra, preco_venda;
	public:
	void funcionario()
	{
        cout<<"cadastro de funcionarios"<<endl;
        cout<<"Nome: "<<endl;
        cin.getline(nome,50);
        cout<<"Endereco: "<<endl;
        cin.getline(endereco,50);
        cout<<"Idade: "<<endl;
        cin>>idade;
        cout<<"Cargo: "<<endl;
        cin.getline(cargo,30);
        cout<<"Salario liquido: "<<endl;
        cin>>salario;
	}
	void fornecedor()
	{

        cout<<"Empresa: "<<endl;
        cin.getline(empresa,50);
        cout<<"Endereco: "<<endl;
        cin.getline(endereco,50);
        cout<<"Cidade: "<<endl;
        cin.getline(cidade,50);
        cout<<"Telefone: "<<endl;
        cin>>telefone;

	}
	void cliente()
	{
        cout<<"Nome: "<<endl;
        cin.getline(nome,50);
        cout<<"CPF: "<<endl;
        cin>>cpf;
        cout<<"Endereco: "<<endl;
        cin.getline(endereco,50);
        cout<<"Telefone: "<<endl;
        cin>>telefone;
    }
};
void arquivar()
{

	if(opcao == '1')
	{
	    	finaliza='s';
        ofstream arq("funcionario.txt" ,ios::app);
        if(! arq)
        {
            cerr<<"Arquivo nao encontrado"<<endl;
            exit(1);
        }
            while(finaliza=='s')
            {

                cout<<"Confirma os dados inseridos?";
                cin>>confirma;
                if(confirma=='s')
                {
                    arq;
                }
                cout<<"Deseja novo cadastro?"<<endl;
                cin>>finaliza;
        }
    }
	if(opcao == '2')
	{
	    	finaliza='s';
	ofstream arq("fornecedor.txt" ,ios::app);
	if(! arq)
	{
		cerr<<"Arquivo nao encontrado"<<endl;
		exit(1);
	}
		while(finaliza == 's')
		{

			cout<<"Confirma os dados inseriodos?";
			cin>>confirma;
			if(confirma == 's')
			{
				arq;
			}
			cout<<"Deseja novo cadastro?"<<endl;
			cin>>finaliza;
		}
	}
	if(opcao == '3')
	{
	    	finaliza='s';
	ofstream arq("CLientes.txt" ,ios::app);
	if(! arq)
	{
		cerr<<"Arquivo nao encontrado"<<endl;
		exit(1);
	}
		while(finaliza == 's')
		{

			cout<<"Confirma os dados inseridos?";
			cin>>confirma;
			if(confirma == 's')
			{
				arq;
			}
			cout<<"Deseja novo cadastro?"<<endl;
			cin>>finaliza;
		}
	}
//arq.close();

}
int main()
{
	Pessoa cadastro;
	cout<<"1- Opcoens de cadastro"<<endl;
	cout<<"2- Opcoens de consulta"<<endl;
	cin>>opcao;
	switch (opcao)
	{
	    case 1:
            cout<<"1-funcionario"<<endl;
            cout<<"2-fornecedor"<<endl;
            cout<<"3-cliente"<<endl;
            switch (opcao)
	{
		case 1:
            cadastro.funcionario();
			void arquivar();
		break;
		case 2:
            cadastro.fornecedor();
			void arquivar();
		break;
		case 3:
            cadastro.cliente();
			void arquivar();
		break;
		default:
			cout<<"Opcao invalida tente novamente";
		    cin>>(opcao);
        break;
        break;

	}
      case 2:

            cout<<"1-funcionario"<<endl;
            cout<<"2-fornecedor"<<endl;
            cout<<"3-cliente"<<endl;
        break;
	cin>>opcao;
	cin.ignore();

	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok...

Onde está a dúvida e qual o erro??

 

Pra já:

#include<iostream.h>
#include <stdlib.h>
#include <string.h>
#include<fstream.h>

O sufixo .h não existe nos headers de C++.

E quando for incluir um header de c, retire o sufixo .h e coloque o prefixo c

 

Portanto, ficaria:

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cstring>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok...

Onde está a dúvida e qual o erro??

 

Pra já:

#include<iostream.h>
#include <stdlib.h>
#include <string.h>
#include<fstream.h>

O sufixo .h não existe nos headers de C++.

E quando for incluir um header de c, retire o sufixo .h e coloque o prefixo c

 

Portanto, ficaria:

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cstring>

Apesar de nao ser esse o problema, mas valeu a informação eu quero e criar um classe por exemplo com os dados do meu cliente como se ve no codigo que eu fiz e depois armazenar utilizando uma função de manipulação de arquivos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tava tentando entender seu código neh..

depois de uns 5 minutos HFUDAHS.

vi q você ta fazendo uma comparação errada ai.

opcao é do tipo int, entaum compare ela assim 'variavel == 1'

e naum assim: 'variavel == "1"';

 

e pra dar uma reforçada em como salvar: http://forum.imasters.com.br/index.php?/topic/261303-codigo-gravacao-simples/

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tava tentando entender seu código neh..

depois de uns 5 minutos HFUDAHS.

vi q você ta fazendo uma comparação errada ai.

opcao é do tipo int, entaum compare ela assim 'variavel == 1'

e naum assim: 'variavel == "1"';

 

e pra dar uma reforçada em como salvar: http://forum.imasters.com.br/index.php?/topic/261303-codigo-gravacao-simples/

 

[]s

 

valeu pela dica tambem, mas tipo a gravacao simples e facil o ploblema e com a classe que eu nao sei como fazer os campos do objeto serem armazenados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pq você n cria funções tipo getNome(); e grava elas no arquivo! entendeu??

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode colocar como rsolvido, ja fiz como queria que ficasse...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.