Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c语言中的返回函数主菜单_C_Menu_Return_Main - Fatal编程技术网

c语言中的返回函数主菜单

c语言中的返回函数主菜单,c,menu,return,main,C,Menu,Return,Main,我这周开始编写代码,所以我对此一无所知。我需要关于在脚本中返回main的帮助。例如,当我完成课程注册部分时,我无法返回菜单程序正在崩溃 代码: #include <stdafx.h> #include <stdio.h> void eng(); void menu(); void huh(); int main() { menu(); return 0; } void menu() { int menu1choice; print

我这周开始编写代码,所以我对此一无所知。我需要关于在脚本中返回main的帮助。例如,当我完成课程注册部分时,我无法返回菜单程序正在崩溃

代码:

#include <stdafx.h>
#include <stdio.h>

void eng();
void menu();
void huh();

int main()
{
    menu();

    return 0;
}

void menu()
{
    int menu1choice;

    printf("Menu\n");
    printf("\n");
    printf("1. Student Registration\n");
    printf("2. Show Students.\n");
    printf("Please enter number: ");
    scanf_s("%d", &menu1choice);
    switch (menu1choice)
    {
        case 1:
        {
            eng();
            break;
        }

    }
}

void eng()
{
    int a = 5;
    char name[30];

    printf("1.Student Number: ");
    scanf_s("%d", &a);
    //student number
    printf("2.Name: ");
    scanf_s("%s", &name);
    //student name
    getchar();
}

void huh()
{
    int a = 5;
    char name[30];

    printf("Your Student number: %d\n", a);
    printf("Your Name: %s\n", name);
    //result
    getchar();
}
#包括
#包括
void eng();
无效菜单();
void-huh();
int main()
{
菜单();
返回0;
}
无效菜单()
{
国际菜单1选择;
printf(“菜单\n”);
printf(“\n”);
printf(“1.学生注册”);
printf(“2.向学生展示。\n”);
printf(“请输入号码:”);
扫描(“%d”和菜单选择);
开关(菜单1选择)
{
案例1:
{
eng();
打破
}
}
}
void eng()
{
INTA=5;
字符名[30];
printf(“1.学生编号:”);
scanf_s(“%d”和“&a”);
//学号
printf(“2.Name:”);
扫描单位(“%s”和名称);
//学名
getchar();
}
void huh()
{
INTA=5;
字符名[30];
printf(“您的学号:%d\n”,a);
printf(“您的姓名:%s\n”,姓名);
//结果
getchar();
}

请帮我写返回代码行,提前谢谢

这里有一些代码可以帮助您理解如何将函数返回值的机制,在您的情况下返回到主函数

至于一些建议,请仔细阅读有关魔法数字的内容,特别是为什么它们不好

/*
 *  35917794_main.c
 */

#include <stdio.h>

#define     STU_REG         1
#define     STU_SHOW        2
#define     EXIT_SUCCESS    0

unsigned int show_menu(void);

unsigned int main
        (
        unsigned int    argc,
        unsigned char   *arg[]
        )
{
    unsigned int    menu1choice;
/*
 *  The next statements says run the function show_menu() and put the returned
 *  result in the variable menu1choice.
 */
    menu1choice = show_menu();
    switch(menu1choice)
        {
        case (STU_REG):
            {
            printf("\nGo do STUDENT REGISTRATION things...\n\n");
            break;
            }
        case STU_SHOW:
            {
            printf("\nGo do SHOW STUDENT things...\n\n");
            break;
            }
        default:
            {
            printf("\nGo do something for invalid option...\n\n");
            break;
            }
        }
    return(EXIT_SUCCESS);
}


unsigned int show_menu
        (
        void
        )
{
    unsigned int    ui_W0;
    printf("Menu\n\n");
    printf("1. Student Registration\n");
    printf("2. Show Students.\n");
    printf("Please enter number: ");
    scanf("%d", &ui_W0);
/*
 *  The next statements says run the function show_menu() has finished and returned
 *  returns the result in the variable ui_W0.
 */
    return(ui_W0);
}
/*
*35917794_main.c
*/
#包括
#定义STU_REG 1
#定义斯图秀2
#定义退出\u成功0
无符号整数显示菜单(无效);
无符号整数主
(
无符号整数argc,
无符号字符*arg[]
)
{
无符号整数菜单1选择;
/*
*下面的语句说运行函数show_menu(),并将返回的
*结果在变量menu1choice中。
*/
menu1choice=show_menu();
开关(菜单1选择)
{
病例(STU_REG):
{
printf(“\n做学生注册的事情…\n\n”);
打破
}
案例斯图秀:
{
printf(“\n确实显示学生的东西…\n\n”);
打破
}
违约:
{
printf(“\n为无效选项执行操作…\n\n”);
打破
}
}
返回(退出成功);
}
无符号整数显示菜单
(
无效的
)
{
无符号整数ui_W0;
printf(“菜单\n\n”);
printf(“1.学生注册”);
printf(“2.向学生展示。\n”);
printf(“请输入号码:”);
scanf(“%d”&ui_W0);
/*
*下面的语句表示run函数show_menu()已完成并返回
*在变量ui_W0中返回结果。
*/
返回(ui_W0);
}

printf(“您的姓名:%s\n”,Name”)中使用具有自动存储持续时间的未初始化变量的不确定值调用了未定义行为
scanf_s(“%s”和名称)-->
scanf_s(“%29s”,名称,30)
(30 sizeof(name))在
案例
中不需要
{}
,但实际上应该放一个
default
子句来处理所有其他情况。同时发布scanf的代码_s@terencehill他没有scanf_s()的源代码,它是微软C运行时库的一部分。与标准C scanf()的主要区别在于,每当使用“%s”时,它都需要一个缓冲区大小。非原型函数声明符被弃用:
void eng()
->
void eng(void)
int main(void)
,等等。