Directinput立即模式下为什么按一键却收到多条纪录

大家好,代码如下:

//开始准备循环接收数据
BYTE diks[256];
while(g_pKeyboard->GetDeviceState(sizeof(diks),&diks) == DI_OK)
{
    for(int i=0;i<256;i++)
    {
        if((diks[i] & 0x80) >0 )
        {
            std::cout<<"The Key of NO."<<i<<" is pressed."<<std::endl;
        }
    }

}

这样的代码在实际运行的时候,进入循环检测按键时,我按一下键盘按键,居然打印出满屏的信息。我预计是按一下打一条信息的,不知道是什么原因,有没有人能帮忙看下的。谢谢了。