Bucle finalizado con enter

Iniciado por cjordan, 12 Junio 2010, 10:57 AM

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

Littlehorse

Cita de: D4N93R 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?

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!
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

O-LLOS-O

Cita de: Littlehorse en 12 Junio 2010, 17:42 PM
Citar
Código (cpp) [Seleccionar]
#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 :huh:, me siento muyyy tonto xdx

Saludos

bizco

el if no se repite, pero al entrar al bucle no hay nada que le haga salir y se queda pillado ahi.

Littlehorse

El if no se repite, y al while nunca entra, porque nunca se cumple la condición del if.

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

Riki_89D

#14
Y que tal con:
Código (cpp) [Seleccionar]

#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

Littlehorse

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
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

cjordan

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...

43H4FH44H45H4CH49H56H45H

Utiliza la API de windows.
No uses Dev-C++.
VC++ seria lo mejor.

-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

Иōҳ

Cita de: Riki_89D en 12 Junio 2010, 22:39 PM
Y que tal con:
Código (cpp) [Seleccionar]

#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 :P
Eres adicto a la Ing. Inversa? -> www.noxsoft.net

O-LLOS-O

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