getch()的奇怪行为

时间:2013-08-12 06:28:24

标签: c++ io getch

我有一个这样的程序:

#include <iostream>
#include <conio.h>
using namespace std;

int main ()
{
    for (int i = 0; i < 10; i++)
    {
        cout << int (_getch ()) << endl;
    }
    _getch ();
    return 0;
}

如果我按下数字,字母和输入等键,则会显示一个整数(循环的每次迭代)。但是,如果我按下插入,删除或箭头等键,则会同时显示两个整数。

为什么会出现这种情况?

1 个答案:

答案 0 :(得分:3)

来自_getch()

当读取功能键或箭头键时,必须调用每个函数两次;

第一个调用返回0(对于F1-F10)或0xE0(224)(对于其他调用),第二个调用返回实际的键代码。