c - 将所有菜单放入 .c 文件中

标签 c

在各自独立的 .c 文件中创建所有程序菜单是否不正确? 我正在创建一个小型库存程序,由于它将使用相当多的菜单,我想知道这是否可以接受。

我将使用链接列表最终访问二进制文件中的信息,以创建、编辑、删除和查询与客户、供应商、员工和股票相关的信息。

因此,我不确定是将每个菜单放在它自己的 .c 文件中还是将所有菜单放在一个 menu.c 文件中,而不是将所有菜单放在 main.c 中。

对我来说,将每个菜单放入其自己的 .c 文件中会更容易,因为这样可以轻松查看代码,但会创建大量 .c 文件。

最佳答案

您可以创建一个函数 showMenu() 来询问用户想要什么选项。每个示例:

#include <stdio.h>
#include <ctype.h>

char showMenu()
{
    char option;
    printf("===== Access the information =====\n"
           "A) Binary files\n"
           "B) Create\n"
           "C) Edit\n"
           "D) Delete\n"
           "Q) Quit\n"
           "Your option: ");
    scanf("%c", &option);
    while(getchar()!='\n');
    return option;
}

int main(void)
{
    int exit = 1;
    do
    {
        switch(toupper(showMenu()))
        {
            case 'A':
                // Function A
                break;
            case 'B':
                // Function B
                break;
            case 'C':
                // Function C
                break;
            case 'D':
                // Function D
                break;
            case 'Q':
                exit = 0;
                break;
            default:
                printf("No valid input");  // handle the error
        }
        printf("\n");
    } while(exit);
    return 0;
}

分离代码是一种很好的做法,但为每个函数创建一个文件可能太多了。在您的情况下,使用functions.c和main.c创建functions.h是一个好主意。

关于c - 将所有菜单放入 .c 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24345875/

相关文章:

c++ - 为什么Visual C++在C中而不是从C++中警告从const void **到void *的隐式强制转换?

c - 结构标签、 union 标签和枚举标签是否有单独的命名空间?

更改文件

c++ - 这段代码会发生什么? (执行一个字符缓冲区)

c - 无法将二进制文件中的数据读入结构指针数组

html - 如何在 C 中解码 HTML 实体?

c - 当数组大小和整数大小不恒定时,如何创建整数数组?

c - 在循环链接列表中存储用户输入的名称

c - execvp - 为什么我的程序退出?

c unix execl 不适用于用 strcat 构建的字符串