从输入中获取选择

从输入中获取选择

我想提示用户按下一个键。此键将存储在变量中,并且在该键上应用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/

10-15 12:51