Hirdetés

Új hozzászólás Aktív témák

  • Karma
    félisten

    Sziasztok!

    Suliban kaptunk egy ilyen kiinduló anyagot, amit tovább kellene fejleszteni:

    #include "stdafx.h"
    #include <stdio.h>
    #include <time.h>
    #include <conio.h>

    int main()
    {
    unsigned char ch=0;
    do {
    if(_kbhit())
    { ch = getchar();
    switch(ch)
    {
    case 0x00: printf("\n[Fx] code:");
    printf("%d\n",getchar());
    break;

    case 0xE0: printf("\n[Xx] code:");
    printf("%d\n",getchar());
    break;

    case '1': printf("Ahoj");
    break;
    case '2': printf("Hello");
    break;

    case 13 : printf("\n");
    break;

    default: printf("%c",ch);
    }
    }
    } while(ch != 27);

    printf("\n\nVege...\n\n");
    return 0;
    }

    A normál gombokat beolvassa gond nélkül, de az F1,F2,... ESC és tsa. már nem megy át. Hol a hiba? Mit nem veszek észre?

    Elvileg ha az a _kbhit() függvényhívás nem lenne ott, ennek a kódnak működnie kéne - az F1-12 és más spéci gombok kezelése már benne van a switchben (00 és E0). Próbáld meg azt az if-et kivenni, egyébként sincs semmi értelme.

    Ezt most csak spekulálom, de szerintem ha az benne van, végtelen ciklusban pörgeti a CPU-t (egy magot 100%-on), amíg nem ütsz le egy billentyűt. Ami nagyon gáz.

Új hozzászólás Aktív témák