Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Superplay en 7 Octubre 2010, 23:49 pm



Título: Volver al principio del programa...
Publicado por: Superplay en 7 Octubre 2010, 23:49 pm
Veréis, tengo un caso que no se como resolver:

Código:
case 1:  ++++++++++Código         
           do{
           printf("Escribe tu nombre de Usuario: ");
           scanf("%s", &Administrator);
           if(Administrator[0]=='A'&&Administrator[1]=='d'&&Administrator[2]=='m'&&Administrator[3]=='i'&&Administrator[4]=='n'
           &&Administrator[5]=='i'&&Administrator[6]=='s' &&Administrator[7]=='t' &&Administrator[8]=='r'&&Administrator[9]=='a'
           &&Administrator[10]=='t'&&Administrator[11]=='o'&&Administrator[12]=='r')
           a=RangoDif; else {printf("El usuario es incorrecto, por favor, int%cntelo de nuevo\n", 130); i++;}
           }while(a!=RangoDif && i!=RangoDif);
//Ahora viene cuando no me sale bien la operación          
 if(i==RangoDif){system("exit");}
           a=0;
           i=0;
          
           do{++++++++++código

break;

El problema que tengo es que cuando i==RangoDif quiero que el programa se cierre completamente (o como mucho vuelva al principio) y si no es ==, que continue con la siguiente linea de código... pero no me hace caso de ese condicional y sigue con el siguiente código, alguien me ayuda? gracias.

PD: No contesteis ahorradores de código o aquellos que saben hacerlo mejor sin tantos pasos, quiero solucionar mi problema, no saber que bien lo hacéis vosotros. Gracias.


Título: Re: Volver al principio del programa...
Publicado por: SirLanceCC en 8 Octubre 2010, 00:56 am
Código:
if(i==RangoDif){return 0;}
Si esa parte del código está en el main

Código:
if(i==RangoDif){exit(0);}
Si no. Esa función está en la librería stdlib


Título: Re: Volver al principio del programa...
Publicado por: Mr.Blue en 8 Octubre 2010, 13:58 pm
Tambien podrias, mandar eso a una funcion y llamar a la funcion al final si no es correcto el nombre del adminisrtador, y se le puede agregar un cont con un if para q tenga ej (4 posibilidades) antes de salir.

un ejemplo seria asi

if(i==RangoDif)
{
main (); // vuelve a llamar al prog principal
}

PD. Para simplificar eso, no te voy a decir como, pero se puede usar la funcion strcmp entre cadenas.


Título: Re: Volver al principio del programa...
Publicado por: Dellarts en 8 Octubre 2010, 14:42 pm
La verdad es que comparando la primera letra con el caracter y usando luego strcmp te ahorrarias esa barbaridad de if


Título: Re: Volver al principio del programa...
Publicado por: Superplay en 8 Octubre 2010, 17:11 pm
Muchas gracias a los tres.

Si mi idea es hacer una función aparte y llamarla cuando ocurra tal circunstancia.

Gracias por la función para ahorrarme esos tochacos de if sobre carácteres. Iba a preguntarlo jejeje investigaré sobre ella cuando pueda. Aunque también me interesa un poco los tochacos para  una especie de práctica mía escribiendo en C.

Por casualidad, noconocereis algún compilador de C para iPad verdad?

Muchas gracias ;)