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

(PROBLEMILLA) Declarar funciones Char

Estas en el tema de (PROBLEMILLA) Declarar funciones Char en el foro de C/C++ en Foros del Web. Bueno, estoy haciendo un juegito de consola, a modo de narrar ( es decir , tu escribes lo que quieres que tu personaje haga). Y ...
  #1 (permalink)  
Antiguo 22/09/2011, 15:27
 
Fecha de Ingreso: agosto-2011
Mensajes: 6
Antigüedad: 13 años, 3 meses
Puntos: 0
(PROBLEMILLA) Declarar funciones Char

Bueno, estoy haciendo un juegito de consola, a modo de narrar ( es decir , tu escribes lo que quieres que tu personaje haga).

Y tengo un problema, en la parte del inventario del personaje para ser exacto, esto es así:

Tengo el inventario del personaje, y para almacenar su ropa declaré la variable:

char Ropa[200];

y mas adelante , segun su clase y todo eso, quiero hacer uqe su ropa sea "Ropajes de campesino ", o simplemente "Ropajes", por lo que declaro:

Ropa = "Ropajes";

Pero me marca error.

Tambien he probado hacer:

char Ropa = "Ropajes";

Pero me sigue sin salir bien...


Alguna ayuda?...

Muchas gracias a todos :)
  #2 (permalink)  
Antiguo 22/09/2011, 15:36
 
Fecha de Ingreso: octubre-2010
Ubicación: Edo. de México
Mensajes: 94
Antigüedad: 14 años, 1 mes
Puntos: 9
Respuesta: (PROBLEMILLA) Declarar funciones Char

No puedes manejar los arreglos de chars de esa forma, ya que "Ropa" espera una dirección de memoria, no un valor de tipo cadena. La forma correcta de hacer este tipo de asignaciones es:

Código:
 strcpy(Ropa, "Ropajes");
Espero te sea de ayuda

Saludos++;
  #3 (permalink)  
Antiguo 22/09/2011, 15:43
 
Fecha de Ingreso: agosto-2011
Mensajes: 6
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: (PROBLEMILLA) Declarar funciones Char

Me ha salido, la verdad te agradezco, ahora tengo otro problemilla...

Cuando pido que ingrese el nombre y apellido se vuelve loco , jajaj, mira te paso el codigo!...


Código C++:
Ver original
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <string>
  4.  
  5.  
  6. using namespace std;
  7.  
  8. string Nombre;
  9. string Titulo;
  10.  
  11. int main(int argc, char *argv[])
  12. {
  13.    
  14.     // Variables del personaje
  15.    
  16.     char Nombre[50];
  17.     char Titulo[50];
  18.     int Vida;
  19.     int Nivel;
  20.     int Experiencia;
  21.     int Golpe;
  22.     int Golpehechi;
  23.     int Monedas;
  24.     int Fuerza;
  25.     int Destreza;
  26.     int Inteligencia;
  27.     int Constitucion;
  28.     int Defensa;
  29.     int Mana;
  30.     //Variables de Inventario
  31.    
  32.     char Ropa[200];
  33.     int Arma;
  34.     char Armainfo[200];
  35.     int Armadura;
  36.     int Amuleto;
  37.     char Amuletoinfo[200];
  38.     strcpy(Ropa, "Ropaje de Campesino");
  39.     strcpy(Armainfo, "Horca de Campesino");
  40.     strcpy(Amuletoinfo, "Amuleto de aprendiz");
  41.    
  42.    
  43.     // Variables Globales
  44.    
  45.     int crear;
  46.     int punto;
  47.     char continuar[10];
  48.     int Inventario;
  49.    
  50.  
  51.    
  52.     cout<<"1 Para crear su personaje"<<endl;
  53.    
  54. cin >> crear;
  55. while( crear != 1)
  56. {
  57.    cout << "Solo Puede crear su personaje" << endl;
  58.    cin>>crear;
  59. }
  60.  
  61. cout << "Ingrese el nombre de su personaje" << endl;
  62.  
  63. cin >> Nombre;
  64.  
  65.  
  66. cout << "Ingrese un Titulo para su personaje" <<endl;
  67.  
  68. cout << " Ej: '' El cazador Oscuro '', '' El Guerrero Temido '' , Etc... "<< endl;
  69.  
  70. cin >> Titulo;


con esos 2 tengo problema, al poner un nombre que contenga un espacio, por ejemplo " Juan Carlos ", el programa se vuelve loco y tiene errores, como que, se saltea pasos y avanza hasta cierto punto y todo se corrompe jajaj...

Tengo que usar strcpy tambien?

Última edición por Doistak; 22/09/2011 a las 16:08
  #4 (permalink)  
Antiguo 22/09/2011, 16:11
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 6 meses
Puntos: 344
Respuesta: (PROBLEMILLA) Declarar funciones Char

Si usas C++, es mejor usar la clase string para manejar cadenas. Te va a facilitar el trabajo mucho.
  #5 (permalink)  
Antiguo 22/09/2011, 16:16
 
Fecha de Ingreso: agosto-2011
Mensajes: 6
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: (PROBLEMILLA) Declarar funciones Char

Me podrias explicar como usar los string?, o algun tutorial?, es que no se mucho sobre eso, estoy acostumbrado a este modo jejeje :D
  #6 (permalink)  
Antiguo 22/09/2011, 16:31
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 7 meses
Puntos: 228
Respuesta: (PROBLEMILLA) Declarar funciones Char

Los string si los puedes igualar a cadenas...porque son clases y tiene el operador de asignacion sobrecargado. Que significa esto....en pocas palabas cada vez que detecta esto

string nombre = "hola";

el compilador se da cuenta y lo reemplaza por una funcion...para simplificar las cossas imaginate que lo reemplaza por

strcpy(nombre, "hola");

Asi tu codigo queda mucho mas lindo. Los string se definen como te los defini arriba. Ademas se pueden sumar y muchas otras funciones mas.
Aqui tienes todo lo que puedes hacer con strings: http://www.cplusplus.com/reference/string/string/

Saludos
  #7 (permalink)  
Antiguo 22/09/2011, 16:37
 
Fecha de Ingreso: agosto-2011
Mensajes: 6
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: (PROBLEMILLA) Declarar funciones Char

Pero en caso de que no este definida al principio, que sea algo que el usuario escribe en el programa, como es el nombre del personaje, como hago?


Aca estoy viendo en un video que el problema esta al usar Cin>>Nombre;

Dice que devo usar gets(Nombre); para que funcione..

De todos modos no entiendo mucho. ustedes dicen que reemplaze char Nombre[200]; por String nombre; ?



EDITO: He arreglado el problema con un codigo que es cin.ignore(); . Debido a que no sabia que cin sigue esperando valores despues de ser usado, y al usar gets, se producen errores. En efecto el problema era el cin , que no permite escribir espacios


Gracias a todos (:

Última edición por Doistak; 22/09/2011 a las 16:49
  #8 (permalink)  
Antiguo 23/09/2011, 15:36
 
Fecha de Ingreso: enero-2011
Mensajes: 33
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: (PROBLEMILLA) Declarar funciones Char

Yo prefiero Utilizar getch su funcionamiento seria:

"getch("nombre de la variable");
fflush(stdin)"

Espero te ayude saludos

P.D

Para asignar un array es algo asi:

char nombre[20]= "Juan Coronel";

Etiquetas: char, declarar, funciones
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 05:40.