Ir ao conteúdo
  • Cadastre-se

Pobremas Com Struct C++


Posts recomendados

Estou Começando A Ver Estruturas, Mas Não Sei como Passar uma Variável do tipo struct para uma função, Então como minha unica solução declarei a variavel como global que no caso poderia ser acessada em qualquer funçao ( Eu Acho né... ) mas nao estou conseguindo acessar as informaçoes da variavel para imprimir os (Vectores) que estão dentro da variavel, Ai Nao sei se O Pobrema e como estou acessando os vectores o se e por que nao estou passando a variavel por parametro, se possivel informe o porque esta ocorrendo este pobrema e me falem como passo uma variavel do tipo struct como parametro. 

 

Obrigado!..

programa_Probrema.txt

Link para o comentário
Compartilhar em outros sites

@Gustavo Andretto  Olha O Codigo :

#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <vector>


using namespace std;

    

  struct DadosPessoais{
    
    vector <string> endereco; // #
    vector <string> dataNasc; // #
    vector <string> idadeAtu; // #
    vector <string> telefone; // #
    vector <string> email;    // #
    vector <string> nome;     // #
    vector <string> cpf;      // #
    vector <string> rg;       // #
    
}; 

char lyricsTemp[1];

DadosPessoais pessoas;

void cadastraPessoa(DadosPessoais pessoas);
void imprimiCadastro(DadosPessoais pessoas);

int main(int argc, char** argv){ 
       
    cadastraPessoa(pessoas);
    imprimiCadastro(pessoas);
    
    return 0;
}

void cadastraPessoa(DadosPessoais pessoas){
    

   cout << " Digite As Seguinte informações Da Pessoa a Ser Cadastrada : " << "\n\n";
    
    cout << " Nome Completo : ";
    gets(lyricsTemp);
    pessoas.nome.push_back(lyricsTemp);

    cout << " Data de Nascimento : ";
    gets(lyricsTemp);
    pessoas.dataNasc.push_back(lyricsTemp); 
    
   
    cout << " Idaade Atual : ";
    gets(lyricsTemp);
    pessoas.idadeAtu.push_back(lyricsTemp);
    
    cout << " Digite O Cpf da Pessoa : ";
    gets(lyricsTemp);
    pessoas.cpf.push_back(lyricsTemp);
    
    cout << " Digite O Rg da Pessoa : ";
    gets(lyricsTemp);
    pessoas.rg.push_back(lyricsTemp);
    
    cout << " Endereco : ";
    gets(lyricsTemp);
    pessoas.endereco.push_back(lyricsTemp);
    
    cout << " Email : "; 
    gets(lyricsTemp);
    pessoas.email.push_back(lyricsTemp);
    
    cout << " Telefone : ";
    gets(lyricsTemp);
    pessoas.telefone.push_back(lyricsTemp);
 
}

void imprimiCadastro(DadosPessoais pessoas){ 
    
    cout << " Nome : " << pessoas.nome[0]                    << endl;
    cout << " Data de Nascimento : " << pessoas.dataNasc[0]  << " / ";
    cout << " Idade Atual : " << pessoas.idadeAtu[0]         << endl;
    cout << " CPF : " << pessoas.cpf[0]                      << " / ";
    cout << " RG  : " << pessoas.rg[0]                       << endl;
    cout << " Endereço :" << pessoas.endereco[0]             << endl;
    cout << " Email :" << pessoas.email[0]                   << endl;
    cout << " Telefone : " << pessoas.telefone[0]            << endl;
     
}

Link para o comentário
Compartilhar em outros sites

@vitor de jesus segue abaixo

#include <iostream>
#include <string>
#include <vector>

using namespace std;

struct DadosPessoais 
{
	/*vector <string>*/string endereco;
	/*vector <string>*/string dataNasc;
	/*vector <string>*/string idadeAtu;
	/*vector <string>*/string telefone;
	/*vector <string>*/string email;
	/*vector <string>*/string nome;
	/*vector <string>*/string cpf;
	/*vector <string>*/string rg;
};

void cadastraPessoa(vector<DadosPessoais>* pessoas);
void imprimiCadastro(DadosPessoais* pessoas);

int main(int argc, char** argv) 
{
	vector<DadosPessoais> pessoas;

	cadastraPessoa(&pessoas);
	imprimiCadastro(&pessoas[0]);

	return 0;
}

void cadastraPessoa(vector<DadosPessoais>* pessoas)
{
	cout << " Digite as seguinte informações da pessoa a ser cadastrada : " << "\n\n";

	DadosPessoais temp;

	cout << " Nome Completo : ";
	//gets(lyricsTemp);
	getline(cin, temp.nome);
	//pessoas.nome.push_back(lyricsTemp);

	cout << " Data de Nascimento : ";
	//gets(lyricsTemp);
	getline(cin, temp.dataNasc);
	//pessoas.dataNasc.push_back(lyricsTemp);

	cout << " Idaade Atual : ";
	//gets(lyricsTemp);
	getline(cin, temp.idadeAtu);
	//pessoas.idadeAtu.push_back(lyricsTemp);

	cout << " Digite O Cpf da Pessoa : ";
	//gets(lyricsTemp);
	getline(cin, temp.cpf);
	//pessoas.cpf.push_back(lyricsTemp);

	cout << " Digite O Rg da Pessoa : ";
	//gets(lyricsTemp);
	getline(cin, temp.rg);
	//pessoas.rg.push_back(lyricsTemp);

	cout << " Endereco : ";
	//gets(lyricsTemp);
	getline(cin, temp.endereco);
	//pessoas.endereco.push_back(lyricsTemp);

	cout << " Email : ";
	//gets(lyricsTemp);
	getline(cin, temp.email);
	//pessoas.email.push_back(lyricsTemp);

	cout << " Telefone : ";
	//gets(lyricsTemp);
	getline(cin, temp.telefone);
	//pessoas.telefone.push_back(lyricsTemp);

	pessoas->push_back(temp);
}

void imprimiCadastro(DadosPessoais* pessoas)
{
	cout << " Nome : " << pessoas->nome << endl;
	cout << " Data de Nascimento : " << pessoas->dataNasc << " / ";
	cout << " Idade Atual : " << pessoas->idadeAtu << endl;
	cout << " CPF : " << pessoas->cpf << " / ";
	cout << " RG  : " << pessoas->rg << endl;
	cout << " Endereço :" << pessoas->endereco << endl;
	cout << " Email :" << pessoas->email << endl;
	cout << " Telefone : " << pessoas->telefone << endl;
}

 

Link para o comentário
Compartilhar em outros sites

Obrigado..

 

Mas acho q Não Informe O Porque Estava Utilizando os Vectores vou Explicar...

 

Antes de Tudo O Programa Não Esta Pronto Ainda. vou incluir Algumas opções pro usuário Tipo : opção para ele cadastrar mais uma pessoa. opção para procurar um nome no vetor e exibir informações sobre aquela pessoa Dentre Outras Coisas....


Então Pensei.. o que faço para torna o programa mais automatizado, tipo sem ter que criar uma variável do tipo struct toda hora que usuário quiser adicionar mais uma pessoa.

 

De Primeira pensei em criar na struct um vetor[1000] mas achei que não daria certo. pois pode ser que o usuário não queira armazenar 1000 pessoas " desperdício de memoria " ou Talvez o usuário queira armazenar mais de 1000 pessoas que no caso não teria como...

 

A String não seria desperdício de memoria mas por outro lado toda hora que fosse armazenar uma pessoa teria que criar outra variável do tipo struct... Ou não? me desculpe se estiver errado pois começei a Programar ha pouco tempo.

 

emfim me deparei com os Vectores que no meu caso achei ideal pois não precisaria criar variaveis toda hora que usuário  queira armazenar mais uma pessoa, e nao seria estabelecido um valor maximo de pessoas que posso adicionar " nao Haveria Desperdicio de Memoria " e para imprimir tambem não seria estão dificíl so colocar um for dentro da funçao imprimir e etc...

 

Caso saiba alguma forma de solucionar meu pobrema utilizando os vectores sera de grande ajuda, e e se  estiver errado sobre as string  peço desculpas...

                                                               

Espero que nao Ficou Muito embolada a Explicação. 

 

Obrigado mais uma Vez :)

 

 

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!