• Domingo 28 de Abril de 2024, 23:34

Autor Tema:  Consola se cierra luego de utilizar "cin" y uso de "endl"  (Leído 1911 veces)

krosty4782

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Consola se cierra luego de utilizar "cin" y uso de "endl"
« en: Jueves 26 de Febrero de 2009, 02:33 »
0
Buenas gente =)
Estoy empezando a leer un libro que se llama "Beginning c game programming", y por ahora me resulto bastante sencillo, aun estando en ingles, y divertido a la vez.
Pero llego un punto en el cual nose que pueda estar mal y es que al escribir un codigo como este:
Código: C++
  1.  
  2.  // El mundo perdido
  3. // Aventura de Mauri
  4.  
  5. #include <iostream>
  6. using namespace std;
  7. int main()
  8. {
  9.  char nombre;
  10.  int tropas;
  11.  
  12.         cout << "tMundo perdido";
  13.         cout << "nNombre:  ";
  14.         cin >> nombre;
  15.        
  16.         cout << "nIngrese cantidad de tropas: ";
  17.         cin >> tropas;
  18.         return 0;
  19. }
  20.  
  21.  

En la consola llega a aparecer hasta "Nombre: " pero una vez que lo introduzco, y le doy a enter, se cierra sola :S, es decir en este caso no me aparece "Ingrese cantidad de tropas:".
A que se puede dever esto ?
Otro punto que no entendi es que algunas veces y en otras no utiliza "endl", por ejemplo:
Código: C++
  1. cout << "score: " << score << endl;
  2.  
. Si no me equivoco si no utilizo en "endl" este funciona igual, en fin si alguien me puede aclarar para que es el uso de lo antes mencionado.

Saludos y espero una respuesta
Gracias

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Consola se cierra luego de utilizar "cin" y uso de "endl"
« Respuesta #1 en: Jueves 26 de Febrero de 2009, 03:32 »
0
Cita de: "krosty4782"
y le doy a enter, se cierra sola :S, es decir en este caso no me aparece "Ingrese cantidad de tropas:".
Creo que tu problema radica en

Código: C
  1. char nombre;
  2.  
Aquí dices que nombre es un carácter y no una cadena de caracteres -que supongo es lo que quieres y lo que introduces por el teclado, por esto te peta-, que en C++ sería

Código: C
  1. #include <strings>
  2. string nombre;
  3.  
Busca sobre la clase string en la documentación y verás que incorpora un buen número de métodos para las operaciones comunes con cadenas de caracteres  (que viva la programación orientada a objetos) ^_^

Cita de: "krosty4782"
i no me equivoco si no utilizo en "endl" este funciona igual, en fin si alguien me puede aclarar para que es el uso de lo antes mencionado.
Es lo mismo que el n, sólo que éste es más de C y endl de C++.

Salud

krosty4782

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Consola se cierra luego de utilizar "cin" y uso de "endl"
« Respuesta #2 en: Jueves 26 de Febrero de 2009, 12:43 »
0
A si ahi fue =), gracias.
Osea que endl seria para bajar un espacio  :oops: ?
Saludos y gracias

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Consola se cierra luego de utilizar "cin" y uso de "endl"
« Respuesta #3 en: Jueves 26 de Febrero de 2009, 12:57 »
0
Con endl termina una linea, endl=end line.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

krosty4782

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Consola se cierra luego de utilizar "cin" y uso de "endl"
« Respuesta #4 en: Jueves 26 de Febrero de 2009, 17:57 »
0
Bueno muchas gracias =)

krosty4782

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Consola se cierra luego de utilizar "cin" y uso de "endl"
« Respuesta #5 en: Jueves 26 de Febrero de 2009, 18:30 »
0
Bueno, me surgio un problema similar.
Segui avanzando con el codigo y me quedo asi:

Código: C++
  1.  
  2. // El mundo perdido
  3. // Aventura de Mauri
  4.  
  5. #include <iostream>
  6. using namespace std;
  7. int main()
  8. {
  9.  int muertes, sobrevivientes, tropas;
  10.   string nombre;
  11.  const int resultante = 100;
  12.  
  13.         cout << "tMundo perdido";
  14.         cout << "nNombre:  ";
  15.         cin >> nombre;
  16.        
  17.         cout << "nIngrese cantidad de tropas: ";
  18.         cin >> tropas;
  19.        
  20.         cout << "nMagos (menor a la cantidad de tropas): ";
  21.         cin >> muertes;
  22.        
  23.         sobrevivientes = tropas - muertes;
  24.        
  25.         // historia
  26.        
  27.         cout << "nEl gran " << nombre << " marcho en su aventura atravez del mundo perdido de Grhatler,";
  28.         cout << "acompañado por " << tropas << " valientes guerreros que sin dudarlo darian la vida por su lider." << endl;
  29.         cout << "A lo largo de su viaje consiguieron muchas riquezas, pero a la vez tambien sufrieron bajas debido al ataque de espantosos y ferozes enemigos." << endl;
  30.         cout << "Luego de su travezia el gran " << nombre << " regreso con " << sobrevivientes << " sobrevivientes y una fortuna de " << resultante * sobrevivientes << endl;
  31.         cout << "enter";
  32.         cin.ignore(cin.rdbuf()->in_avail() + 1);  
  33.                          return 0;
  34.  

El problema es que ahora luego de pedir las "muertes" la consola se va  :(
Revise pero no pude ver cual sea el fallo.
Saludos

 EDITO: YA PUDE, TUVE QUE AGREGARLE "cin.ignore();cin.clear();cin.get();"