elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Duda  (Leído 5,065 veces)
Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Duda
« Respuesta #10 en: 22 Septiembre 2012, 21:34 pm »

He leido eso y no he podido evitar contestar, nunca useis system("PAUSE"), repito nunca, es llamar al sistema para hacer una pausa, como consejo es mejor que eviteis esa pausa, echadle un vistazo a las chinchetas, hay un post que habla sobre esto.


En línea

Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: Duda
« Respuesta #11 en: 22 Septiembre 2012, 21:35 pm »

una pregunta, es que como yo aprendo por mi cuenta sin uni pues hay cosas que me salto para que sirve los ;; de

Código:
for(;;)

gracias

PD:
He leido eso y no he podido evitar contestar, nunca useis system("PAUSE"), repito nunca, es llamar al sistema para hacer una pausa, como consejo es mejor que eviteis esa pausa, echadle un vistazo a las chinchetas, hay un post que habla sobre esto.

por que no se tenia que usar? creo que era por que hacia correr al programa lento y tenia menos compatibilidad


En línea

djdac3

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Duda
« Respuesta #12 en: 22 Septiembre 2012, 21:36 pm »

el system("PAUSE"); es el ultimo recurso, ya que probé con cin.peek, cin.ignore, get.char, ninguno me sirvió y no se porque.

los ;; en el for es para que sea un ciclo infinito
En línea

xv0


Desconectado Desconectado

Mensajes: 1.026



Ver Perfil
Re: Duda
« Respuesta #13 en: 22 Septiembre 2012, 22:50 pm »

Hola

el system("PAUSE"); es el ultimo recurso, ya que probé con cin.peek, cin.ignore, get.char, ninguno me sirvió y no se porque.

los ;; en el for es para que sea un ciclo infinito

No programo en C++ ni en Windows, para hacer una pausa o "bloquear" la ejecución tienes la función sleep, el tiempo se define en segundos.

Un saludo

P.D: Yo no pondria un for, lo dejaria así:

Código:
while (1) {

//codigo

}
En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Duda
« Respuesta #14 en: 22 Septiembre 2012, 22:59 pm »

No se pausa porque con
Código
  1. cin>>mesa;
dejas "basura" en el buffer del teclado, y
Código
  1. cin.peek();
en este caso lo que hace es limpiar dicho buffer. Para solucionarlo, solo tienes que poner dos veces
Código
  1. cin.peek();
(u otro similar). El primero limpiará el buffer, y el segundo pausará el programa.

Un saludo.
En línea

Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Duda
« Respuesta #15 en: 23 Septiembre 2012, 12:50 pm »

Prueba con este:

Código
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.    int mesa;
  10.    for(;;){
  11.        cout<<"Ingrese el mes actual"<<endl;
  12.        cin>>mesa;
  13.        if(mesa>=1 && mesa<=12) break;
  14.            else{
  15.                cout<<"El mes que ingreso no es valido, inrese un dato valido"<<endl;
  16.               cout<<"Presione enter para continuar"<<endl;
  17.               cin.get();
  18.               cin.get();
  19.  
  20. system("cls");
  21.            }
  22.        }
  23.  
  24.  cin.get();
  25.  
  26.    return 0;
  27. }
En línea

fary


Desconectado Desconectado

Mensajes: 1.062



Ver Perfil WWW
Re: Duda
« Respuesta #16 en: 23 Septiembre 2012, 13:57 pm »

Hola

No programo en C++ ni en Windows, para hacer una pausa o "bloquear" la ejecución tienes la función sleep, el tiempo se define en segundos.

Un saludo

P.D: Yo no pondria un for, lo dejaria así:

Código:
while (1) {

//codigo

}

En code::blocks (y me supongo que mas compiladores) da lo mismo poner una cosa que otra porque genera el mismo código ensamblador:

Con while:

Código
  1. MOV DWORD PTR SS:[ESP+C],0
  2. MOV DWORD PTR SS:[ESP+8],0
  3. MOV DWORD PTR SS:[ESP+4],0
  4. MOV DWORD PTR SS:[ESP],0
  5. CALL <JMP.&USER32.MessageBoxA>
  6. SUB ESP,10
  7. JMP SHORT bucle_wh.0040132E
  8.  


Con for:

Código
  1. MOV DWORD PTR SS:[ESP+C],0
  2. MOV DWORD PTR SS:[ESP+8],0
  3. MOV DWORD PTR SS:[ESP+4],0
  4. MOV DWORD PTR SS:[ESP],0
  5. CALL <JMP.&USER32.MessageBoxA>
  6. SUB ESP,10
  7. JMP SHORT bucle_wh.0040132E
  8.  

El equivalente en C

While:

Código
  1. #include <windows.h>
  2.  
  3. int main()
  4. {
  5.    while(1)
  6.    {
  7.        MessageBoxA(0,0,0,0);
  8.    }
  9.  
  10.    return 0;
  11. }
  12.  

for:

Código
  1. #include <windows.h>
  2.  
  3. int main()
  4. {
  5.    for (;;)
  6.    {
  7.        MessageBoxA(0,0,0,0);
  8.    }
  9.  
  10.    return 0;
  11. }
  12.  

saludos!
En línea

Un byte a la izquierda.
xv0


Desconectado Desconectado

Mensajes: 1.026



Ver Perfil
Re: Duda
« Respuesta #17 en: 23 Septiembre 2012, 16:25 pm »

Hola mDrinky, gracias por el dato, esto me viene bien por que estoy empezando con ASM.

Solo dije eso porque for se suele utiliza para bucles definidos, ya sabes iniciación de la variable, condición, incremento o decremento, por eso me parecio más correcto para un bucle infinito usar while. Como genera lo mismo ya veo que no es importante.

P.D: GCC me genero exactamente lo mismo.

Un saludo
En línea

fary


Desconectado Desconectado

Mensajes: 1.062



Ver Perfil WWW
Re: Duda
« Respuesta #18 en: 23 Septiembre 2012, 18:37 pm »

Hola mDrinky, gracias por el dato, esto me viene bien por que estoy empezando con ASM.

Solo dije eso porque for se suele utiliza para bucles definidos, ya sabes iniciación de la variable, condición, incremento o decremento, por eso me parecio más correcto para un bucle infinito usar while. Como genera lo mismo ya veo que no es importante.

P.D: GCC me genero exactamente lo mismo.

Un saludo

Sí, en realidad casi nadie en C usaría un for para hacer un bucle infinito. De hecho queda asta feo, no?. Pero cosas como estas demuestran que no siempre un código bonito en C pueda funcionar mejor que un código feo  :D

un saludo!
En línea

Un byte a la izquierda.
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pequeña duda con un comando batch (NUEVA DUDA RELACIONADA)
Scripting
revenge1252 9 9,768 Último mensaje 13 Febrero 2008, 21:41 pm
por revenge1252
Duda.
Software
Sharok 2 3,075 Último mensaje 16 Marzo 2009, 17:22 pm
por Sharok
Duda duda y duda de Metasploit
Bugs y Exploits
huber_nomas 4 5,800 Último mensaje 17 Febrero 2012, 14:00 pm
por MauroMasciar
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines