Ir ao conteúdo
  • Cadastre-se

Michael Douglas_787885

Membro Júnior
  • Posts

    16
  • Cadastrado em

  • Última visita

Reputação

2
  1. Você disse que o problema era que o magica[1] tava dando um numero estranho O motivo do numero estranho é que você criou um vetor de 0 posições e quer acessar a posição de indice 1, que no caso essa posição é inexistente, e ae da esse numero defina o tamanho do vetor como por exemplo: int tamanho = 1; int magica[tamanho]; while(magica[tamanho] != 0) { printf("Digite um numero: "); scanf("%d", &magica[tamanho]); tamanho++; }
  2. Eu nem testei o seu código, mas pelo que eu vi aqui, você esta querendo acessar magica[1] sem ao menos ter criado um vetor que possa acessa-lo na declaração de variavel, muda o int magica[0] para int magica[2] ou então muda os magica[1] para magica[0] além do mais você não precisava criar um vetor
  3. Boa tarde! Estou tentando acessar um objeto, só que esse objeto foi criado em outra classe e também estou querendo acessar esse mesmo objeto de outro metodo. objeto -> Personagem *personagem o proposito é o seguinte eu tenho o meu personagem, e eu tenho que deixa-lo forte, para isso tenho que passar de nivel e comprar armas na loja só que quando ponho para comprar uma arma da loja e vou atribuir o atk da arma para o atk do meu personagem da erro pois o objeto personagem foi instanciado em outro metodo e em outra classe como eu acesso esse objeto? //arquivo Rpg.cpp void Rpg::cidade() { string nome; int escolhaOpcao; cout << "Para continuar digite o nome do seu personagem" << endl; cout << "Nome: "; getline(cin, nome); Loja *loja; Personagem *personagem = new Personagem(nome, 100, 20, 10, 20, 5, 0); cout << endl << "Personagem criado com sucesso" << endl << endl; do { cout << "Escolha uma opção" << endl; cout << "1)Arena de batalha" << endl; cout << "2)Loja" << endl; cout << "3)Sair" << endl; cin >> escolhaOpcao; switch(escolhaOpcao) { case 1: arenaDeBatalha(); break; case 2: loja->lojaInicio(); break; } }while(escolhaOpcao != 3); } //arquivo Loja.cpp void Loja::lojaInicio() { int escolhaOpcao; cout << "Bem vindo a loja" << endl; cout << "Escolha uma opção" << endl; cout << "1)Armas" << endl; cout << "2)Armaduras" << endl; cout << "3)Itens" << endl; cout << "4)Sair" << endl; cout << "Sua opção: "; cin >> escolhaOpcao; switch(escolhaOpcao) { case 1: lojaArmas(); break; case 2: lojaArmaduras(); break; case 3: lojaItens(); break; case 4: cout << "Saindo..." << endl; break; default: cout << "Opção inválida" << endl; } } void Loja::lojaArmas() { int escolhaOpcao; Armas *armas[TAM_ARMAS]; armas[0] = new Armas("Espada Guerrilha", 20, 45); armas[1] = new Armas("Tridente", 35, 80); armas[2] = new Armas("Machado de Batalha", 60, 130); armas[3] = new Armas("Espada da Lamina Abissal", 100, 250); cout << "Loja de armas" << endl << endl; cout << "Escolha uma opção" << endl << endl; for(int i = 0; i < TAM_ARMAS; i++) { cout << i+1 <<")" << armas[i]->getNome() << " - " << "Dano: " << armas[i]->getAtkAdd() << " - Preço: " << armas[i]->getGold() << "g" << endl; } cout << endl << endl << "Sua opção: "; cin >> escolhaOpcao; switch(escolhaOpcao) { case 1: personagem->setAtkTotal(50,armas[0]->getAtkAdd()); //DA ERRO AQUI, SE EU CRIAR UM OBJETO AQUI, NÃO SERÁ O MESMO DA CLASSE RPG E METODO CIDADE break; case 2: break; case 3: break; case 4: break; default: cout << "Opção invalida" << endl; } }
  4. Boa tarde. Galera estou querendo iniciar programação com interface gráfica, ja procurei na net mas não tive uma resposta clara, então qual a melhor biblioteca para iniciantes? Poderia também deixar um link para estudos? Obrigado desde ja.
  5. O que você quer deve ser isso aqui O erro era porque vc fez um else if antes de ter um if dentro do if por exemplo if { else if { } else if { } else if { } } sendo que era para ser assim: if { if { } else if { } else if { } } #include <stdio.h> main() { double valor; scanf("%lf",&valor); if (valor>=0|| valor<=25) { printf("Intervalo [0,25]"); if (valor>25 && valor <=50) { printf("Intervalo [25,50]"); } else if (valor>50 && valor <=75) { printf("Intervalo [50,75]"); } else if (valor >75 && valor <=100) { printf("Intervalo [75,100]"); } }else printf("Fora de intervalo"); }
  6. só completando... a comparação de strings não funciona do mesmo jeito com numeros com numero é assim: if(num1 == num2) {...} com string é assim: if(strcmp(planeta, "mercurio") ==0 ) {...} o strcmp significa string compare o primeiro parametro que é a variavel planeta, esta sendo comparado com a string mercurio, se elas forem iguais retorna 0 ou seja, a função strcmp retorna valores -1,ou 0 ou 1, ela retornara -1 se o conteudo(valor) da variavel planeta for menor que "mercurio", retornará 0 se o conteudo(valor) da variavel planeta for igual a string palavra ou retornará 1 se o conteudo da variavel planeta for maior que mercurio pode se comparar duas variaveis também, é só substituir a string mercurio por um nome de uma variavel para utilizar strcmp você terá que adicionar uma biblioteca é só escrever #include <string.h> depois do #include <stdio.h> ou antes pois não faz diferença acesse o canal DE ALUNO PARA ALUNO no youtube para mais informações sobre C, é um canal bem completo tem o canal G-TECH que também é muito bom
  7. Boa tarde. Como faço para imprimir caracter usando numeros inteiros em C++? em C ficaria assim printf ("%c", 16); Mas como fica em C++? eu sei fazer criando uma variavel: char ch = 16; e sem criar uma variavel? EDIT: Haha, ja descobri como, pelo menos esse topico vai servir de ajuda a alguem Aos curiosos, é só utilizar o type-casting que significa converter um tipo para outro como por exemplo: cout << (char)16; na linha de cima eu converti o numero 16 para char, acessando o codigo de valor 16 da tabela ascii
  8. E ae galera, estou aqui de volta haha Então, estou quase terminando meu simulador de um sistemas de banco só que tem um probleminha a leitura do arquivo funciona direitinho caso eu tenha criado apenas uma conta, mas caso eu crise 2 contas ou mais e encerro o programa, quando vou abrir de novo, a tela fica toda preta e tenho que deletar o arquivo .dat para o programa abrir novamente alguma solução para mim? //arquivo ContaBancaria.cpp #include "ContaBancaria.h" #include <iostream> #include <fstream> ContaBancaria::ContaBancaria() { this->arquivoLer(); } void ContaBancaria::setNumeroConta(int numeroConta) { this->numeroConta = numeroConta; } int ContaBancaria::getNumeroConta() { return this->numeroConta; } void ContaBancaria::setNome(string nome) { this->nome = nome; } string ContaBancaria::getNome() { return this->nome; } void ContaBancaria::setNascimento(string nascimento) { this->nascimento = nascimento; } string ContaBancaria::getNascimento() { return this->nascimento; } void ContaBancaria::setCpf(string cpf) { this->cpf = cpf; } string ContaBancaria::getCpf() { return this->cpf; } void ContaBancaria::setSenha(string senha) { this->senha = senha; } string ContaBancaria::getSenha() { return this->senha; } void ContaBancaria::setValor(double valor) { this->valor = this->valor + valor; } double ContaBancaria::getValor() { return this->valor; } void ContaBancaria::criarConta() { srand((unsigned)time(NULL)); ContaBancaria *contabancaria = new ContaBancaria(); char ch; int numeroContaTemp; string nomeTemp, nascimentoTemp, cpfTemp, senhaTemp; cout << endl << "Para criar uma conta digite as informações abaixo" << endl << endl; cout << "Nome: "; cin.get(); getline(cin, nomeTemp); contabancaria->setNome(nomeTemp); cout << "Nascimento: "; getline(cin, nascimentoTemp); contabancaria->setNascimento(nascimentoTemp); cout << "Cpf: "; getline(cin, cpfTemp); contabancaria->setCpf(cpfTemp); numeroContaTemp = rand() % 89999 + 10000; contabancaria->setNumeroConta(numeroContaTemp); cout << "Numero da Conta: " << contabancaria->getNumeroConta() << endl;; cout << "Senha de até 16 caracteres: "; do { ch = getch(); cout << "*"; senhaTemp.push_back(ch); }while(ch != 13); contabancaria->setSenha(senhaTemp); contabancaria->setValor(1); cout << endl << endl << "Conta criada com sucesso!" << endl << endl; vecContaBancaria.insert(vecContaBancaria.end(), *contabancaria); } void ContaBancaria::showInfo() { char ch; int numeroContaTemp, contadorErro1 = 0, contadorErro2 = 0; string senhaTemp; cout << endl << "Digite as informações abaixo para ver os dados da sua conta:" << endl; cout << "Numero da conta: "; cin >> numeroContaTemp; cin.sync(); cout << "Senha: "; do { ch = getch(); cout << "*"; senhaTemp.push_back(ch); }while(ch != 13); cout << endl << endl; if(vecContaBancaria.size() == 0) cout << "Numero da conta e/ou senha é inválido" << endl << endl; ContaBancaria *contabancaria; for(int i = 0; i < vecContaBancaria.size(); i++) { contabancaria = &vecContaBancaria.at(i); if(numeroContaTemp == contabancaria->getNumeroConta() && senhaTemp == contabancaria->getSenha()) { cout << "Nome: " << contabancaria->getNome() << endl; cout << "Nascimento: " << contabancaria->getNascimento() << endl; cout << "CPF: " << contabancaria->getCpf() << endl; cout << "Senha: " << contabancaria->getSenha() << endl; cout << "Numero da conta: " << contabancaria->getNumeroConta() << endl; cout << "Valor: R$ " << contabancaria->getValor() << endl << endl; contadorErro1 = 0; break; } else { contadorErro1 = contadorErro1 + 1; if(contadorErro1 == vecContaBancaria.size()) { cout << "Numero da conta e/ou senha é inválido!" << endl << endl; contadorErro1 = 0; } } } } void ContaBancaria::saque() { char ch; int valorTemp, numeroContaTemp, contadorErro = 0; string senhaTemp; cout << endl << "Digite o as informações abaixo para sacar" << endl; cout << "Numero da conta: "; cin >> numeroContaTemp; cout << "Senha: "; do { ch = getch(); cout << "*"; senhaTemp.push_back(ch); }while(ch != 13); cout << endl << "Valor: "; cin >> valorTemp; if(vecContaBancaria.size() == 0) cout << "Numero da conta e/ou senha é invalido" << endl << endl; ContaBancaria *contabancaria; for(int i = 0; i < vecContaBancaria.size(); i++) { contabancaria = &vecContaBancaria.at(i); if(numeroContaTemp == contabancaria->getNumeroConta() && senhaTemp == contabancaria->getSenha()) { if(valorTemp <= contabancaria->getValor()) { contabancaria->setValor(-valorTemp); } else { cout << endl << "A conta não possui esse valor para saque" << endl << endl; } } else { contadorErro = contadorErro + 1; if(contadorErro == vecContaBancaria.size()) { cout << endl << "Numero da conta é invalido" << endl << endl; contadorErro = 0; } } } } void ContaBancaria::deposito() { int valorTemp, numeroContaTemp, contadorErro = 0; cout << endl << "Digite as informações abaixo para depositar" << endl; cout << "Numero da conta: "; cin >> numeroContaTemp; cout << "Valor: "; cin >> valorTemp; if(vecContaBancaria.size() == 0)//É necessário caso o usuario tente depositar um valor sem ao menos ter criado alguma conta cout << "Numero da conta é invalido" << endl << endl; ContaBancaria *contabancaria; for(int i = 0; i < vecContaBancaria.size(); i++) { contabancaria = &vecContaBancaria.at(i); if(numeroContaTemp == contabancaria->getNumeroConta()) { contabancaria->setValor(valorTemp); cout << "Deposito realizado com sucesso" << endl << endl; } else { contadorErro = contadorErro + 1; if(contadorErro == vecContaBancaria.size()) { cout << endl << "Numero da conta é invalido" << endl << endl; contadorErro = 0; } } } } void ContaBancaria::transferir() { char ch; int valorTemp, numeroContaTemp, contadorErro = 0, contadorErroDestino = 0; string senhaTemp; cout << endl << "Digite as informações abaixo para transferir dinheiro" << endl; cout << "Entre com a sua conta" << endl; cout << "Numero da conta: "; cin >> numeroContaTemp; cout << "Senha: "; do { ch = getch(); cout << "*"; senhaTemp.push_back(ch); }while(ch != 13); cout << endl; if(vecContaBancaria.size() == 0) cout << "Numero da conta e/ou senha é inválido!" << endl << endl; ContaBancaria *contabancaria; for(int i = 0; i < vecContaBancaria.size(); i++) { contabancaria = &vecContaBancaria.at(i); if(numeroContaTemp == contabancaria->getNumeroConta() && senhaTemp == contabancaria->getSenha()) { cout << "Valor atual de sua conta: " << contabancaria->getValor() << endl; cout << "Valor a depositar: "; cin >> valorTemp; if(valorTemp <= contabancaria->getValor()) { cout << "Digite o numero da conta destino" << endl; cout << "Numero da conta: "; cin >> numeroContaTemp; ContaBancaria *contabancariaDestino; for(int i = 0; i < vecContaBancaria.size(); i++) { contabancariaDestino = &vecContaBancaria.at(i); if(numeroContaTemp == contabancariaDestino->getNumeroConta()) { cout << "Deposito realizado com sucesso!" << endl << endl; contabancaria->setValor(-valorTemp); contabancariaDestino->setValor(valorTemp); } else { contadorErroDestino = contadorErroDestino + 1; if(contadorErroDestino == vecContaBancaria.size()) { cout << "Numero da conta destino é invalido" << endl << endl; contadorErroDestino = 0; } } } } else { cout << "A sua conta não possui esse valor para transferir" << endl << endl; } } else { contadorErro = contadorErro + 1; if(contadorErro == vecContaBancaria.size()) { cout << "Numero da conta e/ou senha é invalido" << endl << endl; contadorErro = 0; } } } } void ContaBancaria::arquivoSalvar() { ofstream fileSave; if(vecContaBancaria.size() > 0) { int vecContaBancariaSize = (int)vecContaBancaria.size(); fileSave.open(filename.c_str(), ios::binary); fileSave.write((char *)&vecContaBancariaSize, sizeof(unsigned int)); ContaBancaria *contabancaria; for(int i = 0; i < vecContaBancaria.size(); i++) { contabancaria = &vecContaBancaria.at(i); string nome = contabancaria->getNome(); fileSave.write((char *)nome.c_str(), 100 * sizeof(char)); string nascimento = contabancaria->getNascimento(); fileSave.write((char *)nascimento.c_str(), 16 * sizeof(char)); string cpf = contabancaria->getCpf(); fileSave.write((char *)cpf.c_str(), 16 * sizeof(char)); int numeroConta = (int)contabancaria->getNumeroConta(); fileSave.write((char *)&numeroConta, sizeof(int)); string senha = contabancaria->getSenha(); fileSave.write((char *)senha.c_str(), 17 * sizeof(char)); double valor = (double)contabancaria->getValor(); fileSave.write((char *)&valor, sizeof(double)); } fileSave.close(); } } void ContaBancaria::arquivoLer() { ifstream fileRead; fileRead.open(filename.c_str(), ios::binary); if(fileRead.is_open()) { int vecContaBancariaSize; fileRead.read((char *)&vecContaBancariaSize, sizeof(int)); ContaBancaria *contabancaria = new ContaBancaria(); for(int i = 0; i < vecContaBancariaSize; i++) { char bufferNome[100]; fileRead.read((char *)&bufferNome, 100 * sizeof(char)); string nome(bufferNome); contabancaria->setNome(nome); char bufferNascimento[16]; fileRead.read((char *)&bufferNascimento, 16 * sizeof(char)); string nascimento(bufferNascimento); contabancaria->setNascimento(nascimento); char bufferCpf[16]; fileRead.read((char *)&bufferCpf, 16 * sizeof(char)); string cpf(bufferCpf); contabancaria->setCpf(cpf); int numeroConta; fileRead.read((char *)&numeroConta, sizeof(int)); contabancaria->setNumeroConta(numeroConta); char bufferSenha[17]; fileRead.read((char *)&bufferSenha, 17 * sizeof(char)); string senha(bufferSenha); contabancaria->setSenha(senha); double valor; fileRead.read((char *)&valor, sizeof(double)); contabancaria->setValor(valor); vecContaBancaria.insert(vecContaBancaria.end(), *contabancaria); } fileRead.close(); } } //arquivo ContaBancaria.h #include <iostream> #include <cstdlib> #include <string> #include <vector> #include <string.h> #include <conio.h> #include <ctime> #include <fstream> using namespace std; class ContaBancaria { public: ContaBancaria(); void criarConta(); void showInfo(); void saque(); void deposito(); void transferir(); void setNumeroConta(int numeroConta); int getNumeroConta(); void setNome(string nome); string getNome(); void setNascimento(string nasicmento); string getNascimento(); void setCpf(string cpf); string getCpf(); void setSenha(string senha); string getSenha(); void setValor(double valor); double getValor(); void arquivoSalvar(); void arquivoLer(); private: int numeroConta; string nome; string nascimento; string cpf; string senha; double valor; string filename = "arquivoContaBancaria.dat"; vector <ContaBancaria> vecContaBancaria; }; //arquivo main.cpp #include "ContaBancaria.h" int main() { int escolhaOpcao; setlocale(LC_ALL,"Portuguese"); ContaBancaria *cb = new ContaBancaria(); do { cout << "Hello world!" << endl << endl; cout << "Escolha uma opção:" << endl; cout << "1)Criar conta" << endl; cout << "2)Ver conta" << endl; cout << "3)Saque" << endl; cout << "4)Depósito" << endl; cout << "5)Transferir" << endl; cout << "6)Sair" << endl << endl; cout << "Digite a sua opção: "; cin >> escolhaOpcao; switch(escolhaOpcao) { case 1: cb->criarConta(); break; case 2: cb->showInfo(); break; case 3: cb->saque(); break; case 4: cb->deposito(); break; case 5: cb->transferir(); break; case 6: cb->arquivoSalvar(); break; default: cout << endl << "Opção inválida" << endl; } }while(escolhaOpcao!=6); return 0; }
  9. Ola! Estou tentando abrir um arquivo passando como parametro o nome de uma variavel, porém não estou conseguindo, como devo procedir? Eu estou utilizando o Code blocks #include <iostream> #include <fstream> #include <string> using namespace std; int main() { int escolhaOpcao; string nomeArquivo; cout << "Hello world!" << endl << endl; cout << "Escolha uma opcao:" << endl; cout << "1)Criar um arquivo" << endl; cout << "2)Ler um arquivo" << endl; cin >> escolhaOpcao; switch(escolhaOpcao) { case 1: cout << "Digite o nome do arquivo: " << endl; cin.get(); getline(cin, nomeArquivo); ofstream arquivoWrite; arquivoWrite.open(nomeArquivo, ios::binary); arquivoWrite.close(); } return 0; }
  10. Tem um canal no youtube que ensinou a fazer o Pacman em C utilizando a biblioteca allegro
  11. CiroboyBR muito obrigado, era isso mesmo hehe, eu copiei o mesmo codigo duas vezes , eu nem tinha percebido
  12. Bom dia! Então, eu to querendo gerar um numero aleatorio para o numero da conta do banco, até ai tudo bem, digamos que ele gera o numero 123456, quando vou visualizar o numero, ele muda... //arquivo ContaBancaria.cpp #include "ContaBancaria.h" #include <iostream> ContaBancaria::ContaBancaria() { } void ContaBancaria::setNumeroConta(int numeroConta) { this->numeroConta = numeroConta; } int ContaBancaria::getNumeroConta() { this->numeroConta = numeroConta; } void ContaBancaria::setNome(string nome) { this->nome = nome; } string ContaBancaria::getNome() { return this->nome; } void ContaBancaria::setNascimento(string nascimento) { this->nascimento = nascimento; } string ContaBancaria::getNascimento() { return this->nascimento; } void ContaBancaria::setCpf(string cpf) { this->cpf = cpf; } string ContaBancaria::getCpf() { return this->cpf; } void ContaBancaria::setSenha(char senha[]) { strcpy(this->senha, senha); } char *ContaBancaria::getSenha() { return this->senha; } void ContaBancaria::setValor(double valor) { this->valor = this->valor + valor; } double ContaBancaria::getValor() { return this->valor; } void ContaBancaria::criarConta() { char ch; int aleatorio; ContaBancaria *contabancaria = new ContaBancaria(); int entradaUsuarioInt; string entradaUsuarioString; cout << endl << "Para criar uma conta digite as informações abaixo" << endl << endl; cout << "Cpf: "; cin.get(); getline(cin, entradaUsuarioString); contabancaria->setCpf(entradaUsuarioString); cout << "Nome: "; getline(cin, entradaUsuarioString); contabancaria->setNome(entradaUsuarioString); cout << "Nascimento: "; getline(cin, entradaUsuarioString); contabancaria->setNascimento(entradaUsuarioString); /*cout << "Senha de até 16 caracteres: "; for(int i = 0; i < 16 || senha[i] == 13; i++) { senha[i] = getch(); cout << "*"; } cout << endl;*/ aleatorio = 10000+(rand()%89999); contabancaria->setNumeroConta(aleatorio); cout << "Numero da conta: " << contabancaria->getNumeroConta(); cout << endl << endl << "Conta criada com sucesso!" << endl << endl; vecContaBancaria.insert(vecContaBancaria.end(), *contabancaria); } void ContaBancaria::showInfo() { ContaBancaria *contabancaria = new ContaBancaria(); for(int i = 0; i < vecContaBancaria.size(); i++) { contabancaria = &vecContaBancaria.at(i); cout << endl << "Numero da conta: " << contabancaria->getNumeroConta() << endl; cout << "Nome: " << contabancaria->getNome() << endl; cout << "Nascimento: " << contabancaria->getNascimento() << endl; cout << "CPF: " << contabancaria->getCpf() << endl; //cout << "Senha" << cout << "Valor R$ " << contabancaria->getValor() << endl; system("pause"); } } #include "ContaBancaria.h" #include <iostream> //arquivo ContaBancaria.h #include <iostream> #include <cstdlib> #include <ctime> #include <string> #include <vector> #include <string.h> #include <conio.h> using namespace std; class ContaBancaria { public: ContaBancaria(); void criarConta(); void setNumeroConta(int numeroConta); int getNumeroConta(); void setNome(string nome); string getNome(); void setNascimento(string nasicmento); string getNascimento(); void setCpf(string cpf); string getCpf(); void setSenha(char senha[]); char *getSenha(); void setValor(double valor); double getValor(); void showInfo(); private: int numeroConta; string nome; string nascimento; string cpf; char senha[17]; double valor; vector <ContaBancaria> vecContaBancaria; }; //arquivo main.cpp #include "ContaBancaria.h" int main() { int escolhaOpcao; setlocale(LC_ALL,"Portuguese"); ContaBancaria *cb = new ContaBancaria(); do { cout << "Hello world!" << endl << endl; cout << "Escolha uma opção:" << endl; cout << "1)Criar conta" << endl; cout << "2)Ver conta" << endl; cout << "3)Saque" << endl; cout << "4)Depósito" << endl; cout << "5)Transferir" << endl; cout << "6)Sair" << endl; cin >> escolhaOpcao; switch(escolhaOpcao) { case 1: cb->criarConta(); break; case 2: cb->showInfo(); break; case 3: break; case 4: break; case 5: break; case 6: break; default: cout << endl << "Opção inválida" << endl; } }while(escolhaOpcao!=6); return 0; }
  13. eu não conhecia esse comando cin.sync() ele fez a mesma coisa que o cin.get() ou cin.ignore(), no fim não resolveu o problema dos 10 digitos, mas eu sei porque, eu andei pesquisando e uma variavel do tipo int tem um valor maximo que pode receber que é esse abaixo INT_MAX Valor máximo para uma variável do tipo int. 2147483647 um cpf tem 11 digitos, então o cpf ficava com valor superior a 2147483647(que possui 10 digitos) e por isso dava o erro galerinha, quem for um programa que peça cpf, utilize o tipo char ou até mesmo o tipo string que irá evitar esse erro
  14. E ae galera beleza? Eu postei uma duvida minha aqui a umas 2 horas atras, só que eu mesmo acabei resolvendo depois, porém agora surgiu uma outra duvida Eu digito o valor do cpf só que ai depois ele pulava uma parte do codigo, ok... Ai usei cin.clear() e resolveu isso, só que quando fui ver o valor do cpf, o valor estava diferente do que eu tinha colocado, ok.. Então tirei o cin.clear() e usei cin.get() em cima do meu getline, o programa funciona perfeitamente se o meu cpf tiver tamanho inferior a 10, quando o tamanho é superior a 9, entra num loop infinito do meu comando "DO" pulando todos os cin e getline. //arquivo ContaBancaria.cpp #include "ContaBancaria.h" ContaBancaria::ContaBancaria() { } void ContaBancaria::setNumeroConta(int numeroConta) { this->numeroConta = numeroConta; } void ContaBancaria::setNome(string nome) { this->nome = nome; } string ContaBancaria::getNome() { return this->nome; } void ContaBancaria::setNascimento(string nascimento) { this->nascimento = nascimento; } string ContaBancaria::getNascimento() { return this->nascimento; } void ContaBancaria::setCpf(int cpf) { this->cpf = cpf; } int ContaBancaria::getCpf() { return this->cpf; } void ContaBancaria::setValor(double valor) { this->valor = this->valor + valor; } void ContaBancaria::criarConta() { int entradaUsuarioInt; string entradaUsuarioString; cout << endl << "Para criar uma conta, digite as informações abaixo" << endl; cout << "Cpf: "; cin >> entradaUsuarioInt; this->setCpf(entradaUsuarioInt); cout << "Nome: "; cin.get(); getline(cin, entradaUsuarioString); this->setNome(entradaUsuarioString); cout << "Nascimento: "; getline(cin, entradaUsuarioString); this->setNascimento(entradaUsuarioString); cout << endl << "Conta criada com sucesso!" << endl; } void ContaBancaria::showInfo() { cout << "Nome: " << this->getNome() << endl; cout << "Nascimento: " << this->getNascimento() << endl; cout << "CPF: " << this->getCpf() << endl; system("pause"); } //Arquivo ContaBancaria.h #include <iostream> #include <cstdlib> #include <string> using namespace std; class ContaBancaria { public: ContaBancaria(); void criarConta(); void setNumeroConta(int numeroConta); int getNumeroConta(); void setNome(string nome); string getNome(); void setNascimento(string nasicmento); string getNascimento(); void setCpf(int cpf); int getCpf(); void setValor(double valor); double getValor(); void showInfo(); private: int numeroConta; string nome; string nascimento; int cpf; double valor; }; //arquivo main.cpp #include "ContaBancaria.h" int main() { int escolhaOpcao; setlocale(LC_ALL,"Portuguese"); ContaBancaria *cb = new ContaBancaria(); do { cout << "Hello world!" << endl << endl; cout << "Escolha uma opção:" << endl; cout << "1)Criar conta" << endl; cout << "2)Ver conta" << endl; cout << "3)Saque" << endl; cout << "4)Depósito" << endl; cout << "5)Transferir" << endl; cout << "6)Sair" << endl; cin >> escolhaOpcao; switch(escolhaOpcao) { case 1: cb->criarConta(); break; case 2: cb->showInfo(); break; case 3: break; case 4: break; case 5: break; case 6: break; default: cout << endl << "Opção inválida" << endl; } }while(escolhaOpcao!=6); return 0; }

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...