Como podria reiniciar este programa cuando el usuario lo desee?

Iniciado por JuanTheTropper, 18 Noviembre 2018, 21:46 PM

0 Miembros y 1 Visitante están viendo este tema.

JuanTheTropper

Tengo este codigo y quisiera saber como crear un proceso para que el usuario reinicie el programa si asi lo desea al finalizar su ejecución

int main(int argc, char** argv) {
   
   int ficha;
   
   cout<<" Traga Perras "<<endl;
   cout<<"Cada ficha funciona para 3 lanamientos"<<endl;
   cout<<"Inserte una ficha (digite 1, y oprima enter)"<<endl;
   
   cin>>ficha;
   cout<<" "<<endl;
   
   int lanzamientos=2+ficha;
   int a=1;
   int b=1;
   int c=1;
   int g;
    int resp;
   cout<<"Lanzamiento inicial"<<endl;
   
   
    cout<< a <<"|"<< b <<"|"<< c <<endl;
    cout<<"Para accionar la palanca oprima enter"<<endl;
    cout<< "inciar"<<endl;
    getchar();
    for(int f=0; g<lanzamientos; g++)
   {
   if (ficha==1)
   {
   getchar();
   cout<<"En movimiento"<<endl;
   cout<<"Resultado"<<endl;
   cout<<(a^g)<<"|"<<b+g+1<<"|"<<c*g<<endl;
   cout<<" "<<endl;
   cout<<"-----------------"<<endl;   
   }
   }
   
    cout<<"Desea insertar otra ficha?(0=Si, 1=No) "<<endl;
    cin>>resp;
   }
   system ("PAUSE");
   return 0;
}

K-YreX

Eso se hace con el uso del <do while>. Mete prácticamente todo el programa en un bucle <do> (excepto las dos últimas líneas porque sino acabaría siempre) y añade al final del <do> un par de líneas de código donde le dices al usuario que si desea repetir el programa introduzca "s" o "S", guardas la respuesta del usuario en una variable y la condición del while es que mientras esa variable sea "s" o "S".

La parte de pasar mi explicación a código te lo dejo a ti y si te surge alguna duda puedes volver a preguntar pero recuerda meter el código entre etiquetas pulsando en <Código GeSHi> y eligiendo c++ para que te aparezcan dos etiquetas de código. Mete el código entre esas dos etiquetas y listo.

Veo que programas en C++. Te recomiendo que en vez de <system("pause")> utilices <cin.get()> por buena praxis. Aquí tienes más información sobre ese y otros puntos: https://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;

JuanTheTropper


K-YreX

No, dentro por ejemplo un típico uso del <do while> es para hacer un filtro y que el usuario introduzca un valor válido, para ese caso se hace así:
Código (cpp) [Seleccionar]
int main(){
    int numero;
    do{
        cout << "\nIntroduce un numero positivo: ";
        cin >> numero;
   } while(numero < 0);
    // el resto del programa
}


Así el programa solo pasa de ahí cuando el número es positivo, ya que si es negativo te lo vuelve a pedir. La idea es esa pero dentro del do mete todo lo que tienes que hacer y al final preguntas si desea repetir o no y lo comparas en el while.
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;