按Esc键退出循环(Windows API)

按Esc键退出循环(Windows API)


在编写某个功能函数时,经常会想要按某个键就使程序结束循环,常用的有按‘Q’、‘ESC’等键退出。这里列出几种退出方式,写下来以免忘记

Method 1
该方法会阻塞等待用户输入,然后判断是否满足循环条件,满足则继续执行下面的代码否则退出循环。

#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
    while (getchr()==27) // 按ESC退出
    {
        break;
    }
    else
    {
    	/*some code*/
    	cout<<1<<endl;
    }
    return 0;
}

Method 2
使用GetKeyState直接检测按键值
该方法可以将while循环的条件设置为true,当用户按下esc时,退出循环,非阻塞模式。循环会一直运行直到按下esc键,可将esc键改为其所需的按键。

#include <iostream>
#include <winsock.h>
#include <WinUser.h>

#define KEYDOWN( vk ) ( 0x8000 & ::GetAsyncKeyState( vk ) ) 
//或者
//#define KEYDOWN(vk) GetAsyncKeyState(vk)
using namespace std;

int main(int argc, char* argv[])
{
    while (true)
    {
        if (KEYDOWN(VK_ESCAPE)) // 按ESC退出,非阻塞模式,每次循环不会停留在这
            break;
        cout << "1" << endl;
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值