我可以在按Enter键之前知道哪个键盘键被按下了

时间:2011-10-03 18:12:53

标签: c++

我可以知道在按Enter键之前按下了哪个键盘键。有没有办法在c ++中捕获这样的按键事件?请提供一个简短的例子。 我在Windows 32bit上使用VC ++。

1 个答案:

答案 0 :(得分:3)

// See <url: http://en.wikipedia.org/wiki/Conio.h>.
#include <iostream>
#include <conio.h>      // ! Non-standard, but de facto std. on Windows.

int main()
{
    using namespace std;

    for( ;; )
    {
        cout << "OK, should this program stop now..." << endl;
        cout << "Press Y for Yes or N for No: " << flush;

        for( bool answered = false; !answered; )
        {
            char const ch = getch();        // From [conio.h].
            switch( ch )
            {
            case 'y':
            case 'Y':
                cout << "<- Yes" << endl;      // Input echo.
                cout << "Bye!" << endl;
                return 0;

            case 'n':
            case 'N':
                cout << "<- No" << endl;      // Input echo.
                cout << endl;
                answered = true;

            default:
                ;
            }
        }
    }
}

对于GUI程序有点不同。

注意:如果需要,您也可以一直到Windows API,但我建议您一步一步,首先探索conio.h功能。

干杯&amp;第h。,