Iarlen 0 Denunciar post Postado Maio 17, 2013 Boa tarde. Estou tentando criar uma agenda em C++ usando o struct , mas não estou sabendo como usar. Estou usando vetor para o telefone e o e-mail e não estou conseguindo acessar e definir para cada posição o valor dotelefone e do e-mail. Arquivo: Agenda.cpp, Agenda.h, Contato.cpp, Contato.h Compartilhar este post Link para o post Compartilhar em outros sites
GBecker 51 Denunciar post Postado Maio 17, 2013 Poste o que você já fez, fica mais fácil de ajudar. Compartilhar este post Link para o post Compartilhar em outros sites
Iarlen 0 Denunciar post Postado Maio 17, 2013 #include <iostream> #include "Contato.h" using namespace std; void inicializarContato(Contato &c, string nome, int fone, string email, int pos) { pos = 0; c.nome = nome; while(pos < 3){ c.telefones[pos] = fone; c.emails[pos] = email; pos++; } } int incluirContato(Contato c, Contato contatos[], int posicao, int tam) { if (posicao < tam && posicao >= 0) { // Valida a posição de inserção contatos[posicao] = c; return 1; } return 0; // Posição inválida! } Contato consultarContato(int posicao, Contato contatos[], int tam) { if (posicao < tam && posicao >= 0) { // Valida a posição de inserção return contatos[posicao]; } Contato c; return c; } void exibirContato(Contato contatos[], int posicao, int tam) { Contato c = consultarContato(posicao,contatos,tam); cout << "Numero contato: " << posicao << endl; cout << "Contato: " << c.nome << endl; cout << "Telefone: " << c.telefones[0] << endl; cout << "Email: " << c.emails[0] << endl; } #include "Contato.cpp" #include <stdlib.h> using namespace std; const int TAM = 20; void obterDados(string&, int&, string&, int&); int main() { Contato agenda[TAM]; Contato c; string s1,s2; int i,pos,posi; obterDados(s1,i,s2,pos); inicializarContato(c,s1,i,s2,posi); if (incluirContato(c, agenda, pos, TAM)) { exibirContato(agenda, pos, TAM); } else { // Mensagem de erro caso não seja possível inserir o contato na agenda cout << "Nao foi possivel incluir o contato na agenda na posicao " << pos << endl; cout << "A agenda possui apenas " << TAM << " posicoes." << endl; } system("PAUSE"); return 0; } void obterDados(string &nome, int &fone, string &email, int &posicao) { cout << "Digite um nome" << endl; getline(cin,nome); cout << "Digite um email" << endl; getline(cin,email); cout << "Digite um numero de telefone" << endl; cin >> fone; cout << "Digite a posicao onde o contato deve ser inserido na agenda" << endl; cin >> posicao; } Compartilhar este post Link para o post Compartilhar em outros sites
GBecker 51 Denunciar post Postado Maio 21, 2013 c.telefones[pos] = fone; c.emails[pos] = email; Se o telefone e o email são vetores de char, esta não é a forma correta de atribuição. Pode utlizar strcpy ou até memcpy. Além de ter erro de lógica, qual o objetivo do while na função? strcpy: http://www.cplusplus.com/reference/cstring/strcpy/ memcpy: http://www.cplusplus.com/reference/cstring/memcpy/?kw=memcpy Compartilhar este post Link para o post Compartilhar em outros sites
Iarlen 0 Denunciar post Postado Maio 23, 2013 O objetivo de usar o while era que em cada posição fosse atribuído um valor. Vou tentar o que você disponibilizou. Muito obrigado. Compartilhar este post Link para o post Compartilhar em outros sites