在C中使用菜单驱动的CLI获取用户输入的最佳方法

时间:2020-03-05 18:47:19  来源:igfitidea点击:

在数量有限的C程序中获取用户输入的最佳方法是什么。

例如说选择是:

A)打印列表。
B)在列表的末尾添加99.
C)删除所有重复项。
5)重置5次。

输入" A",然后输入可以,
或者,仅需一次按键就可以。

解决方案

回答

我已经使用了以下简单的方法:

int intput()
{
char input = 0;
int ret_val = 0;

read(0, &input, 1);

switch(input) {
case 'c':
    // do c
    break;
case 'p':
    // do p
    break;
case 'd':
    // do d
    break;
case 'q':
    quit = 1;
    break;
case '?':
    PRINT(ENABLE, "c - connect\n");
    PRINT(ENABLE, "p - ping\n");
    PRINT(ENABLE, "d - disconnect\n");
    PRINT(ENABLE, "q - quit\n");
    PRINT(ENABLE, "? - this message\n");
    break;
}

return 0;
}

回答

除了一点点

而不是使用

switch(input)

使用...

switch (toupper(input))
{
    case 'A':

这将允许用户输入" a"或者" A",并且省去了检查大小写的麻烦

回答

getchar()或者cgetc(),取决于平台