Autor
|
Tema: Bucle finalizado con enter (Leído 18,791 veces)
|
Littlehorse
All the world's a stage
Moderador
Desconectado
Mensajes: 2.714
Nie Dam Sie
|
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?
Podría usarse. Tal vez no sea estrictamente necesario, depende de cual sea la estructura de la aplicacion. De cualquier manera lo primero que hay que saber es sobre que sistema va a trabajar, y de ahí en mas utilizar las funciones especificas de ese sistema. Aunque también es recomendable utilizar alguna librería multi-plataforma como por ejemplo: boost que también viene con manejo de threads en caso que los necesite. Saludos!
|
|
|
En línea
|
An expert is a man who has made all the mistakes which can be made, in a very narrow field.
|
|
|
O-LLOS-O
Desconectado
Mensajes: 324
tengo 14 invitaciones para locker-z enviar mp
|
#include<iostream> using namespace std; int a = cin.get(); int main(){ cout << "hoa" << endl; if(!a) { while(1){ cout << "hola" << endl; } } }
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. MMM pero pq se repite el if... si esta fuera del while , me siento muyyy tonto xdx Saludos
|
|
|
En línea
|
|
|
|
bizco
Desconectado
Mensajes: 698
|
el if no se repite, pero al entrar al bucle no hay nada que le haga salir y se queda pillado ahi.
|
|
|
En línea
|
|
|
|
Littlehorse
All the world's a stage
Moderador
Desconectado
Mensajes: 2.714
Nie Dam Sie
|
El if no se repite, y al while nunca entra, porque nunca se cumple la condición del if.
Saludos
|
|
|
En línea
|
An expert is a man who has made all the mistakes which can be made, in a very narrow field.
|
|
|
Riki_89D
Desconectado
Mensajes: 851
BCN CITY
|
Y que tal con: #include <C:\Dev-Cpp\All.h> using namespace std; int main(void) { while(!GetAsyncKeyState(VK_RETURN)) { } return 0; }
es eso? el bucle no para asta que se pulsa la tecla ENTER A mi me funciona perrfectamente ^^ un saludo
|
|
« Última modificación: 12 Junio 2010, 22:52 pm por Riki_89D »
|
En línea
|
|
|
|
Littlehorse
All the world's a stage
Moderador
Desconectado
Mensajes: 2.714
Nie Dam Sie
|
Esa podría ser una solución valida, pero depende si necesita parar el programa en el transcurso del ciclo o da lo mismo si solo puede hacerlo cuando la condición se evalúa. Dependería de lo que quiera hacer dentro del ciclo. Igualmente ten en cuenta que esa es una función especifica de Windows, y todavía no sabes en que sistema esta trabajando cjordan.
Deberían esperar a que el usuario que inicio el hilo vuelva a postear, así explica un poco mas que es lo que quiere hacer y sobre que sistema.
Saludos
|
|
|
En línea
|
An expert is a man who has made all the mistakes which can be made, in a very narrow field.
|
|
|
cjordan
Desconectado
Mensajes: 3
|
Es en Windows con Dev-C++. He encontrado una funcion que se llama kbhit que hace exactamente eso, mirar el buffer del teclado. Funciona perfectamente pero el problema esta en que tengo 3 whiles. Para el primero me funciona bien pero para los 2 siguientes no, ya que el buffer no esta vacio. Ya he hecho fflush(stdin) pero no sirve...
|
|
|
En línea
|
|
|
|
43H4FH44H45H4CH49H56H45H
Wiki
Desconectado
Mensajes: 502
|
Utiliza la API de windows. No uses Dev-C++. VC++ seria lo mejor.
|
|
|
En línea
|
-R IP :0100 -A 100 2826:0100 MOV AH,09 2826:0102 MOV DX,109 2826:0105 INT 21 2826:0105 MOV AH,08 2826:0105 INT 21 2826:0107 INT 20 2826:0109 DB 'MI NICK ES CODELIVE.$' 2826:0127 -R BX :0000 -R CX :20 -N CODELIVE.COM -W
|
|
|
Иōҳ
Desconectado
Mensajes: 563
|
Y que tal con: #include <C:\Dev-Cpp\All.h> using namespace std; int main(void) { while(!GetAsyncKeyState(VK_RETURN)) { } return 0; }
es eso? el bucle no para asta que se pulsa la tecla ENTER A mi me funciona perrfectamente ^^ un saludo ps si funcionaria... la verdad no se mucho de C/C++ pero viendo el ejemplo de D4N9ER me parece que pudiera ser asi... #include "stdafx.h" int main() { while(getchar()) { break; } return 0; }
corriganme si me equivoco
|
|
|
En línea
|
|
|
|
O-LLOS-O
Desconectado
Mensajes: 324
tengo 14 invitaciones para locker-z enviar mp
|
El problema de si se puede hacer esta solucionado, el otro problema es que creo que quiero que haya codigo en medio, y cuando se aprete, dando igual dode estes del codigo salgas, con un evento que salga del bucle
|
|
|
En línea
|
|
|
|
|
|