Is there a way so that the function report true in only one frame if a button is held down and is not released, and subsequent frames the function returns false ?
I don't think so directly. However, what about a loop that tests _kbhit() and retrieves chars until no more remain? Something like
Code:
int ch = 0;

if (_kbhit()) {
    ch = getch();
    while (_kbhit())
        getch();
}