[C con Clase] Terminar bucle infinito

Steven Davidson srd4121 en njit.edu
Lun Sep 8 01:22:51 CEST 2008


Hola Judit,

judit wrote:
> Creo que no me explique,, perdon.. yo me referia a terminar un bucle
> cuando apretas una tecla o algo asi,,. es decir: comienzas un bucle y
> pones una funcion que si apretas la tecla 'x' terminas el bucle y
> continuas con el programa, si no apretas la tecla 'x' el bucle sigue
> trabajando.

Esto es diferente. De hecho, no veo que necesites un bucle infinito. 
Acabas de dar la condición para salir del bucle y por tanto para 
continuar en ello. El esquema sería el siguiente:

bool bSalir = false;

while( !bSalir )
{
   ...
   if( hayTecla() )
     bSalir = 'x' == leerTecla();
   ...
}

O incluso,

while( 'x' == leerTecla() )
{
   ...
}

Me temo que no podemos darte las funciones concretas, porque las 
bibliotecas estándares de ANSI C no se dedican a tal comportamiento. Sin 
embargo, existen bibliotecas no estándares que sí te ayudarían para 
consultar y obtener las teclas pulsadas y no los caracteres escritos.

En cualquier caso, no tenemos un bucle infinito. Podrías crear un bucle 
infinito si de verdad lo necesitas. En este caso, sí tendríamos que usar 
'break' para salir del bucle. Por ejemplo,

while( true )
{
   ...
   if( hayTecla() && 'x' == leerTecla()  break;
   ...
}


Espero que esto te oriente.

Steven





Más información sobre la lista de distribución Cconclase