Ir para conteúdo

POWERED BY:

Arquivado

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

eloclacs

Lendo string pelo teclado

Recommended Posts

Boa noite, tenho uma grande duvida sobre como passar valores via teclado para um objeto em C++, ja tentei de várias formas, tenho como exemplo esse programa q faria uma leitura simples de uma string:

Ele da erro na linha da instancia:

 

#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;

class Mensagem{
      public:
             string nome;
      Mensagem(string n){
             nome = n;      
      }
      public:
             void imprimir(){
                  cout<<"O seu nome eh:"<<nome;            
             }      
};
int main(int argc, char *argv[])
{
    Mensagem m;
    string nome;
    cout<<"Digite o nome: "<<endl;
    cin.get(m.nome);
    cout<imprimir();
    system("PAUSE");
    return EXIT_SUCCESS;
}

Como devo instancia-lo e passar a string?

 

Obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites
cout<imprimir();

1) Você não tem uma função chamada imprimir e sim um método da classe Mensagem com este nome. A chamada ao método está errada.

 

2) O método imprimir foi declarado como void, portanto não há nenhum retorno para ser exibido com o cout.

 

3) Tanto cout quanto cin requerem o << ou >>, respectivamente. Portanto, utilizar apenas < está errado.

 

Nesta outra linha:

 

cin.get(m.nome);

Está passando o atributo nome da classe Mensagem. Mas o método get não aceita o objeto std::string como parâmetro.

Faça leitura através de um vetor de char em seguida instancie o atributo.

 

http://www.cplusplus.com/reference/string/string/

http://www.cplusplus.com/reference/istream/istream/get/?kw=cin.get

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.