Foros del Web » Programación para mayores de 30 ;) » C/C++ »

cin para char*

Estas en el tema de cin para char* en el foro de C/C++ en Foros del Web. Hola amigos de Foros del Web, tengo la siguiente duda, cuando hago un cin para un char* tengo problemas, me tira un error el compilador, ...
  #1 (permalink)  
Antiguo 18/06/2011, 23:02
Avatar de besotico  
Fecha de Ingreso: junio-2008
Ubicación: Iquique, Chile, Chile
Mensajes: 70
Antigüedad: 16 años, 1 mes
Puntos: 0
cin para char*

Hola amigos de Foros del Web, tengo la siguiente duda, cuando hago un cin para un char* tengo problemas, me tira un error el compilador, está la alternativa de hacerlo de la siguiente manera

Código C++:
Ver original
  1. char variable
  2.  
  3. cin variable

Pero debo decir que así no es como me están enseñando en la universidad por lo que no sé si sea el método adecuado de hacerlo.

A continuación dejo el código

Código C++:
Ver original
  1. #include <stdlib.h>
  2. #include <iostream>
  3. using namespace std;
  4.  
  5.  
  6. class Usuario{
  7. public:
  8.     char* u_Nombre;
  9.     int u_NumCta;
  10.     char* u_Rut;
  11.     int u_Clave;
  12.     void ImprimirDatosUsuario();
  13.     void SetNombre (char* Nombre){u_Nombre = Nombre;}
  14.     void SetNumCta (int NumCta){ u_NumCta = NumCta;}
  15.     void SetRut (char* Rut) { u_Rut = Rut;}
  16.     void SetClave (int Clave) {u_Clave = Clave;}
  17. };
  18.  
  19. void Usuario::ImprimirDatosUsuario() {
  20.     cout <<"Nombre:"<<u_Nombre<<"\n\n";
  21.     cout <<"Numero de Cuenta:"<<u_NumCta<<"\n\n";
  22.     cout <<"Rut:"<<u_Rut<<"\n\n";
  23.     cout <<"Clave:"<<u_Clave<<"\n\n";
  24. }
  25.  
  26. int main(int argc, char** argv) {
  27.    
  28.     char*  Nombre,Rut;
  29.     int   NumCta, Clave;
  30.  
  31.     Usuario CreaUsuario;
  32.  
  33.     cout <<"Ingrese el nombre: ";
  34.     cin >> Nombre;
  35.     CreaUsuario.SetNombre(Nombre);
  36.    
  37.     getchar();
  38.     CreaUsuario.ImprimirDatosUsuario();
  39.     return (EXIT_SUCCESS);
  40. }

Cabe destacar que los int me los pasa bien, solo estoy experimentando problema con los char*.

Saludos :)
  #2 (permalink)  
Antiguo 19/06/2011, 06:56
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 2 meses
Puntos: 228
Respuesta: cin para char*

Tu problema surge en que un char * es un puntero a una cadena....pero a que cadena?? si no creas esa cadena no apuntara a nada.
Tienes que agregar
Nombre = new char[50];

Para reservar memoria para Nombre. 50 es un numero que puse por poner....ahi puede designar el que quieras.

Etiquetas: c++, char*, cin
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:34.