我想提示用户按下一个键。此键将存储在变量中,并且在该键上应用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;
}
最佳答案
好吧,您只需要从
int cKey = GetChoice(keys,3);
至
char cKey;
cKey=getch();
你不需要
int GetChoice(int *keys,size_t size)
功能。只需将其删除。您的整个代码应如下所示
#include <stdio.h>
#include<conio.h>
int main(void)
{
char cKey;
cKey=getch();
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;
}
关于c - 从输入中获取选择,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34228008/