【发布时间】:2015-12-11 16:20:12
【问题描述】:
我想提示用户按下一个键。这个键将存储在一个变量中,并在该键上应用switch语句来执行相应的命令。我写了一个代码,看起来有点讨厌和效率低下,因为它以一种令人筋疲力尽的方式调用函数GetAsyncKeyState,尤其是在键太多的情况下。有没有更简单的方法来解决这个问题?
#include <stdio.h>
#include <Windows.h>
int GetChoice(int *keys,size_t size);
int main(void)
{
int keys[] = {'A','B','F'};
int cKey = GetChoice(keys,3);
switch(cKey)
{
case 'A':
puts("you pressed : A!");
break;
case 'B':
puts("you pressed : B!");
break;
case 'F':
puts("you pressed : F!");
break;
}
Sleep(2000);
return 0;
}
int GetChoice(int *keys,size_t size)
{
size_t n;
while(1)
{
for(n = 0 ; n < size ; n++)
{
if(GetAsyncKeyState(keys[n]))
return keys[n];
}
}
return 0;
}
【问题讨论】:
标签: c windows input multiple-choice