Ir para conteúdo
Fórum Script Brasil

fernandodsb

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Posts postados por fernandodsb

  1. #include <iostream>
    #include <fstream> // ofstream e ifstream
    using namespace std;
    
    class DADOS
    {
    private:
    	string  CPF, NOME, ENDERECO, TELEFONE, EMAIL;
    
    public:
    	string& getCPF()
    	{
    		return CPF;
    	}
    
    	string& getNOME()
    	{
    		return NOME;
    	}
    	
    	string& getENDERECO()
    	{
    		return ENDERECO;
    	}
    
    	string& getTELEFONE()
    	{
    		return TELEFONE;
    	}
    	
    	string& getEMAIL()
    	{
    		return EMAIL;
    	}
    	
    	void setCPF(string& CPF)
    	{
    		this->CPF = CPF;
    	}
    
    	void setNOME(string& NOME)
    	{
    		this->NOME = NOME;
    	}
    	
    	void setENDERECO(string& ENDERECO)
    	{
    		this->ENDERECO = ENDERECO;
    	}
    	
    	void setTELEFONE(string& TELEFONE)
    	{
    		this->TELEFONE = TELEFONE;
    	}
    	
    	void setEMAIL(string& EMAIL)
    	{
    		this->EMAIL = EMAIL;
    	}
    	
    
    	// sobrecarga do operador de inserção de dados <<
    	// ostream = output stream
    	friend ostream& operator<<(ostream& os, const DADOS& p)
    	{
    		// escrever cada membro
    		os << p.CPF << ";" << p.NOME << ";" << p.ENDERECO << ";" << p.TELEFONE << ";" << p.EMAIL<< "\n";
    		return os;
    	}
    
    	// sobrecarga do operador de extração de dados >>
    	// istream = input stream
    	friend istream& operator>>(istream& is, DADOS& p)
    	{
    		// ler cada membro
    		is >> p.CPF >> p.NOME >> p.ENDERECO >> p.TELEFONE >> p.EMAIL;
    		return is;
    	}
    };
    
    char MENU()
    {
    	char resp;
    	system("CLS");
    	cout<<"ESCOLHA A OPCAO DESEJADA  DA APLICACAO AGENDA A BAIXO:"<<endl<<endl;
    	cout<<"	1 - Inclusao de Novo(s) Contato(s) \n	2 - Exclusao de Contato(s) pelo CPF"<<endl; 
    	cout<<"	3 - Consulta de Contato(s) por CPF \n	4 - Alteracao de dados cadastrados (exceto CPF)"<<endl; 
    	cout<<"	5 - Listagem de Agenda em Ordem Alfabetica (Nomes) \n	0 - PARA FINALIZAR";
    	cout<<"\n\nDIGITE A OPCAO DESEJADA... [ ]\b\b";
    	cin >> resp;
    	return resp;
    }
    
    
    int main(int argc, char *argv[])
    {
    	char RSP, OPCAO;
    	DADOS dados, D;
    	string CPF, NOME, ENDERECO, TELEFONE, EMAIL;
    	ofstream agenda;
    	ifstream EntAgenda;
    	Inicio:
    		OPCAO = MENU();
    		system("CLS");
    	
    	switch (OPCAO)
    	{
    		case '1'://Inclusão de Novo(s) contatos
    			cout<<"Inclusao de Novo(s) Contato(s)\n";
    			
    			agenda.open("C:/Users/Fernando/Desktop/Najela/BancoDadosAgenda.txt", ofstream::app);
    			if(agenda.fail())
    			{
    				cout<<"Erro na abertura de arquivo de BANCO DE DADOS! ";
    				exit(1);
    			}
    		
    			cin.ignore();
    			cout << "\n\n	- Digite o CPF: ";
    			getline (cin,CPF);
    			cout<<"\n	- Digite o Nome Completo: ";
    			getline (cin,NOME);
    			cout << "\n	- Digite o Endereco: ";
    			getline (cin,ENDERECO);
    			cout << "\n	- Digite o Telefone: ";
    			getline (cin,TELEFONE);
    			cout << "\n	- Digite o E-mail: ";
    			getline (cin,EMAIL); 
    			
    			dados.setCPF(CPF);
    			dados.setNOME(NOME);
    			dados.setENDERECO(ENDERECO);
    			dados.setTELEFONE(TELEFONE);
    			dados.setEMAIL(EMAIL);
    			
    
    			agenda << dados;
    
    			agenda.close();
    		break;
    		
    		case '2'://Exclusao de Contato(s) pelo CPF
    			cout<<"A OPCAO DESEJADA E 2"; cin.ignore();
    		break;
    		
    		case '3'://Consulta de Contato(s) por CPF
    			cout<<"Consulta de Contato(s) por CPF\n";
    		break;
    		
    		case '4'://Alteracao de dados cadastrados
    			cout<<"A OPCAO DESEJADA E 4"; cin.ignore();
    		break;
    		
    		case '5'://Litagem de Agenda em Ordem Alfabetica (Nomes)
    			cout<<"Litagem de Agenda em Ordem Alfabetica"; 
    			
    			EntAgenda.open("C:/Users/Fernando/Desktop/Najela/BancoDadosAgenda.txt");
    
    			// verifca se o arquivo existe e se é possível ler
    			if(EntAgenda.good())
    			{
    				while(!EntAgenda.eof())
    				{
    					EntAgenda >> D; // faz a extração dos dados
    
    					// mostrar os dados
    					cout << "\nCPF: " << D.getCPF();
    					cout << "\nNOME: " << D.getNOME();
    					cout << "\nENDERECO: " << D.getENDERECO();
    					cout << "\nTELEFONE: " << D.getTELEFONE();
    					cout << "\nEMAIL: " << D.getEMAIL()<< "\n";
    					
    				}
    				EntAgenda.close();
    			}
    			else
    				cout << "Falha ao Abrir o arquivo! \n";
    		break;
    		
    		case '0'://FINALIZA
    			 return 0;
    		break;
    		
    		default:
    			cout<<"OPCAO INVALIDA\n";
    			system("pause");
    			goto Inicio;
    	}
    	
    	cout<<"\nAinda tem alguma alteracao pra fazer? (S/N): ";
    	cin>>RSP;
    	
    	if(RSP == 'S' || RSP == 's')
    		{system("CLS"); goto Inicio;}
    	
    	cout<<"\nObrigado! Sua agenda foi atualizada com sucesso!";
    
    	return 0;
    }
    

    tenho a seguinte entrada de dados:

    12345678911;fernando de souza brito;coimbra;62900000000;fernando1234567@outlook.com
    12345678900;paulo vitor ;negrao de lima;62900000000;paulo1234567@outlook.com
    quando faço a leitura do arquivo, o meu programa para a cada espaço

    preciso de ajuda para que consiga ler nas variáveis da função get, os dados até que encontre a separação do " ; " (ponto e virgula)

    sendo assim a entrada

    CPF = (primeiro campo até o ;)

    NOME = (Campo completo com espaços para caso de nome composto)

    alguém me ajuda?

×
×
  • Criar Novo...