C 如何在退出时再次显示主菜单?

C 如何在退出时再次显示主菜单?,c,C,我试图为我的程序制作一个简单的菜单,在我进入退出后,我可以在两种模式之间轻松切换 当前的问题是,一旦我进入退出,我的程序就会显示菜单,但一旦我选择了一个选项,它就会继续关闭 我在这里找到了类似的帖子,但我似乎尝试了给出的答案,没有运气 int main(void) { int userChoice = 0; char userInput[100]; int index = 0; userChoice = mainMenu(); switch (user

我试图为我的程序制作一个简单的菜单,在我进入退出后,我可以在两种模式之间轻松切换

当前的问题是,一旦我进入退出,我的程序就会显示菜单,但一旦我选择了一个选项,它就会继续关闭

我在这里找到了类似的帖子,但我似乎尝试了给出的答案,没有运气

int main(void) {
    int userChoice = 0;
    char userInput[100];
    int index = 0;

    userChoice = mainMenu();

    switch (userChoice) {
        case 1:
            printf("Enter EXIT anytime to quit out of loop.\n");
            while (strcmp(userInput, "EXIT") != 0) {
                printf("->");
                scanf("%s", userInput);
            }
            userChoice = mainMenu();
            break;
    }
    return 0;
}

int mainMenu() {
    int userChoice = 0;
    printf("--------------------------\n");
    printf("Option 1 \n");
    printf("Option 2 \n");
    printf("--------------------------\n");
    printf("Please enter 1 for Option 1 and 2 for Option 2 ->");
    scanf("%d", &userChoice);
    return userChoice;
}

在您第二次选择菜单选项后,您不会尝试对其进行任何操作。你只要离开开关,在最后按回车键就行了

您需要添加另一个循环,并且只在循环顶部显示菜单:

int main(void) {
    int userChoice = 0;
    char userInput[100];
    int index = 0;

    while (1) {
        userChoice = mainMenu();

        switch (userChoice) {
            case 1:
                printf("Enter EXIT anytime to quit out of loop.\n");
                do {
                    printf("->");
                    scanf("%s", userInput);
                } while (strcmp(userInput, "EXIT") != 0);
                break;
        }
    }
    return 0;
}

使用循环?…谢谢你的回复。我的代码与您发布的代码完全相同,问题是,一旦我输入EXIT,然后选择1,它将不允许我再次输入任何内容。@lajuc请参阅我的编辑。您可以检查userInput,它仍然包含上次通过循环时的字符串EXIT。切换while to do…while to be to to be to to be the check to end.谢谢您,先生,完全忘记了用户输入仍然保持退出状态。现在可以正常工作了。