使用键盘打破while循环

时间:2016-02-11 09:15:48

标签: c++ windows while-loop break

在我的应用程序中,我使用无限循环显示图像。我想在按下预定义键时打破while循环。我尝试过使用GetAsyncKeyState()

if (GetAsyncKeyState(VK_ESCAPE))
        {       
            break;
            printf("Exiting Loop\n");
        }   

但这不起作用!!

我使用的第二种方法是使用getch()方法获取密钥的ascii值。所以像这样,

# include conio.h  // Required header file
int keyVal;
keyVal = getch();
if (keyVal == 27)
 {
   break;
 }

但是,这种方法使我的应用程序无响应。

有关如何使用键盘事件或鼠标事件打破while循环的任何想法?它可以是任何关键。

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果你有conio.h,你可以用非阻塞的方式测试按键

#include <stdio.h>
#include <conio.h>

int main(void)
{
    int k = 0;

    while (k != 27) {

        // do your stuff
        // ...

        // test for keypress
        if(_kbhit()) {
            k = _getch();
        }
    }

    printf("Escaped\n");
    return 0;
}