Yahoo Respuestas cerrará el 4 de mayo de 2021 (hora del Este de EE. UU.) y, a partir del 20 de abril de 2021 (hora del Este de EE. UU.), el sitio web de Yahoo Respuestas estará disponible solo en modo de lectura. No habrá cambios a otras propiedades o servicios de Yahoo, ni a tu cuenta de Yahoo. Puedes encontrar más información sobre el cierre de Yahoo Respuestas y cómo descargar tus datos en esta página de ayuda .

En lenguaje c++ : ¿Como hacer lectura de la barra espaciadora?

estoy realizando un juego .. necesito emplear el (kbhit()) , pero no se como usarlo correctamente

2 respuestas

Calificación
  • Anónimo
    hace 1 década
    Respuesta preferida

    La función kbhit() devuelve 1 si hay algun caracter en el buffer de teclado ó 0 en caso contrario. Lo que debes hacer es esperar a que el usuario presione una tecla y luego capturarla con getch()

    #include <stdio.h>

    #include <conio.h>

    char tecla;

    fflush(stdin);

    while ( !kbhit() )

    {

    //codigo a ejecutarse mientras no se presione una tecla

    }

    tecla = getch();

    y entonces el caracter presionado quedaría almacenado en la variable 'tecla'. Nota la línea fflush(stdin); lo que hace esto es limpiar el buffer de teclado para asegurarte que lo que estes analizando sea, efectivamente, la tecla que el usuario presionó y no algo que haya quedado en el buffer con anterioridad. Si no deseas que el programa haga nada mientras que no se presione una tecla, reemplaza el bloque while por un simple "while( !kbhit() );"

  • Anónimo
    hace 1 década

    Hola aquí te dejo el código para detectar la pulsación de la barra espaciadora.

    Esta explicado linea a linea.

    Probado en DEV C++ exitosamente.

    -----------------------------------------------------------

    #include <iostream>

    #include <stdlib.h>

    #include <conio.h>

    #include <stdio.h>

    using namespace std;

    int main(int argc, char *argv[])

    {

    //Variable para detectar el valor ascii de un caracter

    int caract=0;

    //Cumplimos el ciclo mientras el valor no sea 32

    //es decir la barra espaciadora

    while (caract != '32'){

    //Caracturamos el valor ascii de la tecla que se pulsó

    caract=getch();

    if (caract ==32){

    cout << "Has pulsado la barra espaciadora\n";

    //Salimos del bucle

    break;

    }

    }

    system("PAUSE");

    return 0;

    }

    ----------------------------------------------------------------------------

    Atentamente.

    Elinv

    ----------------------------------------------------------------------------

    Fuente(s): Luis Pedro Méndez.(Elinv) ------------------------- Nuestras Webs: -------------- http://www.bragadomas.com/forodeprogramacion/index... http://www.bragadomas.com.ar/ http://es.answers.yahoo.com/my/profile;_ylt=Ajv9R3... http://www.youtube.com/luispedromendez http://www.bragadomas.com/mil.htm http://www.bragadomas.com/si/ http://bragadohoy.blogspot.com/ http://luispedromendez.blogspot.com/ -------------- Nuestros Mails -------------- luis_pedro_mendez@yahoo.com.ar 1000@bragadomas.com info@bragadomas.com
¿Aún tienes preguntas? Pregunta ahora para obtener respuestas.