Resultados 1 al 5 de 5

C++ se cierra la consola al utilizar "cin"

Esta es una discusión para el tema C++ se cierra la consola al utilizar "cin" en el foro Programación, bajo la categoría Webmasters y Programadores; Buenas =) Estoy empezando con c++ y me surgio un problema que es que al usar el "cin" se cierra automaticamente la consola, aca va un ejemplo de un code ...
Página: 1


  1. #1
    Senior Member

    Fecha de ingreso
    24 abr, 07
    Mensajes
    309
    Buenas =)

    Estoy empezando con c++ y me surgio un problema que es que al usar el "cin" se cierra automaticamente la consola, aca va un ejemplo de un code que me lo cierra luego de ingresar las "muertes":



    Código:
     
    
    // El mundo perdido
    
    // Aventura de Mauri
    
     
    
    #include <iostream>
    
    using namespace std;
    
    int main()
    
    {
    
     int muertes, sobrevivientes, tropas;
    
     *string nombre;
    
     const int resultante = 100;
    
     
    
     
    
     * * * *cout << "\tMundo perdido";
    
     * * * *cout << "\nNombre: *";
    
     * * * *cin >> nombre;
    
     * * * *
    
     * * * *cout << "\nIngrese cantidad de tropas: ";
    
     * * * *cin >> tropas;
    
     * * * *
    
     * * * *cout << "\nMagos (menor a la cantidad de tropas): ";
    
     * * * *cin >> muertes;
    
     * * * *
    
     * * * *sobrevivientes = tropas - muertes;
    
     * * * *
    
     * * * *// historia
    
     * * * 
    
     * * * *cout << "\nEl gran " << nombre << " marcho en su aventura atravez del mundo perdido de Grhatler,";
    
     * * * *cout << "acompañado por " << tropas << " valientes guerreros que sin dudarlo darian la vida por su lider." << endl;
    
     * * * *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;
    
     * * * *cout << "Luego de su travezia el gran " << nombre << " regreso con " << sobrevivientes << " sobrevivientes y una fortuna de " << resultante * sobrevivientes << endl;
    
     * * * *cout << "enter";
    
     * * * *cin.ignore(cin.rdbuf()->in_avail() + 1); *
    
     * * * * * * * * * * * * return 0;


    Esto me pasa con cualquier codigo que hago, luego de elejir la variable se cierra, AL MENOS que a continuacion tenga que elejir otra variable. Es decir aca por ejemplo el "nombre" y la cantidad de "tropas" me las deja ingresar pero ya en muertes luego de ingresarlas se cierra solo :/



    Espero una respuesta, gracias



    Saludos

     
     
  2. #2
    Super Moderador Avatar de rob1104

    Fecha de ingreso
    07 mar, 05
    Ubicación
    México
    Mensajes
    2,548
    Hola, no se cual compilador utilizes, pero para MinGW basta simplemente con limpiar el buffer de entrada y despues esperar a pedir cualquier tecla, asi deberia funcionar:
    Código:
    // El mundo perdido
    
    // Aventura de Mauri
    
    
    
    #include <iostream>
    
    using namespace std;
    
    int main()
    
    {
    
     * *int muertes, sobrevivientes, tropas;
    
     * *string nombre;
    
     * *const int resultante = 100;
    
     * *cout << "\tMundo perdido";
    
     * *cout << "\nNombre: *";
    
     * *cin >> nombre;
    
     * * * 
    
     * *cout << "\nIngrese cantidad de tropas: ";
    
     * *cin >> tropas;
    
     * * * 
    
     * *cout << "\nMagos (menor a la cantidad de tropas): ";
    
     * *cin >> muertes;
    
     * * * 
    
     * *sobrevivientes = tropas - muertes;
    
     * * * 
    
     * *// historia
    
     * * 
    
     * * cout << "\nEl gran " << nombre << " marcho en su aventura atravez del mundo perdido de Grhatler,";
    
     * * cout << "acompañado por " << tropas << " valientes guerreros que sin dudarlo darian la vida por su lider." << endl;
    
     * * 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;
    
     * * cout << "Luego de su travezia el gran " << nombre << " regreso con " << sobrevivientes << " sobrevivientes y una fortuna de " << resultante * sobrevivientes << endl;
    
     * * cout << "enter";
    
     * * cin.ignore();cin.clear();cin.get(); //Asi funciona en MinGW con el IDE Dev-C++
    
     * * return 0;
    
    }
    Saludos

     
     
  3. #3
    Senior Member

    Fecha de ingreso
    24 abr, 07
    Mensajes
    309
    Uso dev c++.

    Lo probe y andubo =), gracias robb.

    Pero para que es lo que hace esto:



    Código:
    cin.ignore();cin.clear();cin.get();


    Saludos y gracias

     
     
  4. #4
    Super Moderador Avatar de rob1104

    Fecha de ingreso
    07 mar, 05
    Ubicación
    México
    Mensajes
    2,548
    El metodo ignore() del objeto cin remueve toda la entrada de un objeto istream hasta un carácter definido como delimitador.



    El metodo clear() del objeto cin reinicia un stream corrupto a un estado normal.



    El metodo get() del objeto cin lee un único carácter de la entrada sin saltar espacios.




     
     
  5. #5
    Senior Member

    Fecha de ingreso
    24 abr, 07
    Mensajes
    309
    No entendi, pero bueno, es que recien empiezo supongo que mas adelante lo aprendere.

    Gracias robbie.

    Saludos

     
     

Temas similares

  1. Help Abro un programa y se me cierra: "nombreProg"
    Por cloud120 en el foro Windows XP
    Respuestas: 1
    Último mensaje: 12/07/2006, 03:30
  2. Encuesta """Cual es el mejor reproductor de video"""
    Por dontrauco en el foro Programas
    Respuestas: 23
    Último mensaje: 27/06/2005, 22:39
  3. Encuesta """Cual es el mejor reproductor de imagenes""
    Por dontrauco en el foro Diseño Grafico
    Respuestas: 8
    Último mensaje: 21/06/2005, 03:39
  4. Se cierra sesión y aparece "Desbloquear Equipo"
    Por Marianitens en el foro Windows XP
    Respuestas: 7
    Último mensaje: 02/01/2005, 21:50
  5. "algo o alguien" me cierra los puertos
    Por mgcosta en el foro Peer to Peer
    Respuestas: 5
    Último mensaje: 07/06/2004, 17:40

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •