用C语言重新启动程序

用C语言重新启动程序,c,C,我一直在开发一个可以添加、搜索、编辑和删除学生记录的程序。在对主功能(包含菜单)进行编码时,我想知道如果用户输入了菜单中未包含的键,是否有办法重新启动程序。所以我想到的计划是,当用户输入一个无效字符时,程序将重新启动,而不是要求重新输入一个有效字符(因为我正在处理一个菜单,我个人认为它很整洁)。这是我一直在做的节目 int main() { int choice = 0; do { system("cls"); prin

我一直在开发一个可以添加、搜索、编辑和删除学生记录的程序。在对主功能(包含菜单)进行编码时,我想知道如果用户输入了菜单中未包含的键,是否有办法重新启动程序。所以我想到的计划是,当用户输入一个无效字符时,程序将重新启动,而不是要求重新输入一个有效字符(因为我正在处理一个菜单,我个人认为它很整洁)。这是我一直在做的节目

int main()
{
    int choice = 0;
    do
    {
        system("cls");
        printf("MAIN MENU");
        printf("\n\n\n\t\t\t1.Add Student");
        printf("\n\t\t\t2.Search Student");
        printf("\n\t\t\t3.Edit Info of Student");
        printf("\n\t\t\t4.Delete Student");
        printf("\n\t\t\t0.Exit");
        printf("\n\n\n\t\t\tEnter choice => ");
        scanf("%d",&choice);
        switch(choice)
        {
        case 1:
            addInfo();
            break;
        case 2:
            searchInfo();
            break;
        case 3:
            editInfo();
            break;
        case 4:
            deleteInfo();
            break;
        case 5:
            displayAll();
            break;
        case 6:
            printf("\n\n\n\t\t\t\tThank you!!!\n\n\n\n\n");
            exit(1);
            break;




        }                                            //Switch Ended
    }
    while(choice==1 && choice==2 && choice==3 && choice==4 && choice==5 && choice==6);                                        
}

它将提供一个循环,直到用户输入0为止

int main()
{
    int choice = 0;
    do
    {
        system("cls");
        printf("MAIN MENU");
        printf("\n\n\n\t\t\t1.Add Student");
        printf("\n\t\t\t2.Search Student");
        printf("\n\t\t\t3.Edit Info of Student");
        printf("\n\t\t\t4.Delete Student");
        printf("\n\t\t\t0.Exit");
        printf("\n\n\n\t\t\tEnter choice => ");
        scanf("%d",&choice);
        switch(choice)
        {
        case 1:
            addInfo();
            break;
        case 2:
            searchInfo();
            break;
        case 3:
            editInfo();
            break;
        case 4:
            deleteInfo();
            break;
        case 5:
            displayAll();
            break;
        case 6:
            printf("\n\n\n\t\t\t\tThank you!!!\n\n\n\n\n");
            exit(1);
            break;




        }                                            //Switch Ended
    }
    while(choice!=0);                                        
}

您可能会想要这样:

do
{
  ...
} while(choice>=1 && choice<6);
do
{
...

}while(choice>=1&&choice)while(choice==1&&choice==2&&choice==3&&choice==5&&choice==6)
怎么可能同时是1、2、3、4、5和6?(除非你的目标是量子计算机。)顺便说一句,
while(choice==1&&choice==2&&choice==3&&choice==4&&choice==5&&choice==6);
永远不会是真的。因为只有一个条件满足。
printf(“\n\t\t\t0.Exit”)
案例6:
退出。而且菜单中的输入
5
没有任何内容。因此,用户必须重新启动程序,而不是请求新的输入,因为您担心菜单结构的“美”
while(选项!=0);
->
while(选项)
虽然这可能是个人的喜好。@Bathsheba在源代码中保持清晰总是更好的。即使C将任何非零值解释为
true
,也最好显示意图,在这种情况下
choice!=0
。这与无处不在的
any_type*p=…;如果(p){…}
,则“更好”
p!=NULL
看起来更清晰。请注意时尚的打开间隔
(choice>=1&&choice)