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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


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

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Bucle finalizado con enter
« en: 12 Junio 2010, 10:57 am »

Buenos dias!

Me urge mucho resolver este tema!!! Vereis, quiero hacer un bucle infinito en C con un while(), que se finalize cuando el usuario pulse enter. Como puedo hacerlo?


En línea

Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: Bucle finalizado con enter
« Respuesta #1 en: 12 Junio 2010, 13:19 pm »

Pero si es infinito no va a poder continuar me parece, pero bueno:

Código
  1. while(1) //o while(TRUE)
  2. {
  3. }
  4.  
  5. getchar();

Saludos :P


En línea

cjordan

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Bucle finalizado con enter
« Respuesta #2 en: 12 Junio 2010, 13:23 pm »

esa es la cuestion, que el bucle no se pare hasta que el usuario pulse enter. Es decir, que esté pendiente todo el rato de si el usuario teclea algo o no... alguien sabe como?
En línea

Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: Bucle finalizado con enter
« Respuesta #3 en: 12 Junio 2010, 13:26 pm »

Código
  1. int a = getchar();
  2.  
  3. if(!a)
  4. {
  5. while(1);
  6. }

Saludos :P
« Última modificación: 12 Junio 2010, 21:03 pm por Horricreu » En línea

O-LLOS-O


Desconectado Desconectado

Mensajes: 324


tengo 14 invitaciones para locker-z enviar mp


Ver Perfil
Re: Bucle finalizado con enter
« Respuesta #4 en: 12 Junio 2010, 13:47 pm »

me podrias explicar pq funciona eso?? o alguien xdxd, no lo entiendo.

lo he hido variando para intentar averiguar-lo pero no lo entiendo.


Código
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. int a = cin.get();
  5.  
  6. int main(){
  7.  cout << "hoa" << endl;
  8.  if(!a) {
  9.    while(1){
  10.      cout << "hola" << endl;
  11.    }
  12.  }
  13. }

Una de las variaciones es esta, no entiendo pq no sale "hoa", hasta que se aprete enter, igual que nunca sale "hola".


Mercy
En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Bucle finalizado con enter
« Respuesta #5 en: 12 Junio 2010, 15:22 pm »

Bueno que me acabo de despertar y no entendí lo que querias, debe ser algo así, sino explicamelo de nuevo que ahora me tomo un café.

Código
  1. #include "stdafx.h"
  2.  
  3.  
  4. int main()
  5. {
  6. while(getchar())
  7. {
  8. printf("test\n");
  9. }
  10. return 0;
  11. }
En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Bucle finalizado con enter
« Respuesta #6 en: 12 Junio 2010, 17:42 pm »

Citar
Código
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. int a = cin.get();
  5.  
  6. int main(){
  7.  cout << "hoa" << endl;
  8.  if(!a) {
  9.    while(1){
  10.      cout << "hola" << endl;
  11.    }
  12.  }
  13. }
Una de las variaciones es esta, no entiendo pq no sale "hoa", hasta que se aprete enter, igual que nunca sale "hola".

Porque usando cin.get de esa forma, incluso si pones un 0, el valor del entero no sera 0, si no 48. Por lo tanto nunca cumplís la condición del if.

Citar
Código
  1. int a = getchar();
  2.  
  3. if(!a)
  4. {
  5. while(1); // faltaba ";"
  6. }

Sucede lo mismo que en el código anterior.

Citar
Código
  1.  
  2. #include "stdafx.h"//No se necesita el header precompilado en este caso
  3.  
  4. int main()
  5. {
  6. while(getchar())
  7. {
  8. printf("test\n");
  9. }
  10. return 0;
  11. }
  12.  

Eso es mas bien lo contrario. Imprimirías test solo si se presiona enter, incluso si presionas varios caracteres y luego enter, se imprimirá tantas veces como datos queden en el buffer de entrada.

Citar
Me urge mucho resolver este tema!!! Vereis, quiero hacer un bucle infinito en C con un while(), que se finalize cuando el usuario pulse enter. Como puedo hacerlo?

Para hacer lo que quieres hacer, necesitas usar funciones especificas de cada sistema, por lo tanto, primero tienes que aclarar en que sistema estas trabajando. Igualmente en el foro hay varios ejemplos que te pueden servir.

Saludos
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Bucle finalizado con enter
« Respuesta #7 en: 12 Junio 2010, 19:59 pm »

Yo todavía no entiendo lo que el quiere. O sea, que el ciclo siga corriendo ininterrumpidamente hasta que se presione una tecla?, creo que hay que usar un thread no?
En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Bucle finalizado con enter
« Respuesta #8 en: 12 Junio 2010, 20:14 pm »

Me temo que hay que usar threads y ser algo asi:
Arrancar el thread con el bucle.
En el thread main del codigo esperar una tecla, si se cumple matar el thread del bucle secundario.

Saludos
En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Bucle finalizado con enter
« Respuesta #9 en: 12 Junio 2010, 20:26 pm »

Me temo que hay que usar threads y ser algo asi:
Arrancar el thread con el bucle.
En el thread main del codigo esperar una tecla, si se cumple matar el thread del bucle secundario.

Saludos

De las formas que se me ocurren para hacerlo, esa que dices es muy buena..

También se puede hacer con un hook al teclado.. o esuchando los mensajes del sistema.
En línea

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Finalizado] Hackea a elhacker.net v2.0 (ganador: yoya) « 1 2 ... 14 15 »
Nivel Web
WHK 142 71,859 Último mensaje 25 Junio 2012, 01:10 am
por gilea
El estándar USB 3.1 ya ha sido finalizado
Noticias
wolfbcn 0 1,338 Último mensaje 4 Agosto 2013, 01:39 am
por wolfbcn
W3 da por finalizado HTML5
Noticias
dimitrix 0 1,483 Último mensaje 18 Julio 2014, 16:40 pm
por dimitrix
Carpeta FL - FINALIZADO
Windows
Zorronde 5 3,449 Último mensaje 27 Octubre 2015, 17:55 pm
por Zorronde
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines