c - 如何在函数之间跳转
问题描述
我正在尝试创建一个购物中心,但我无法在我尝试过 goto 语句的功能之间跳转,请继续一切,请帮助任何事情都行
这是我的代码
#include <stdio.h>
int Verify;
struct Worker
{
int ID;
int Password;
}i;
void Workers_data()
{
struct Worker Sahaj;
struct Worker Sparsh;
struct Worker Ramu;
struct Worker Shamu;
strcpy(Sahaj.ID,1);
strcpy(Sahaj.Password,951);
strcpy(Sparsh.ID,2);
strcpy(Sparsh.Password,223);
strcpy(Ramu.ID,3);
strcpy(Ramu.Password,2334);
strcpy(Shamu.ID,4);
strcpy(Shamu.Password,142);
}
void login()
{
printf("||||||||||||||||Welcome are you a Customer or a Worker|||||||||||||||||||");
prinf("Press 1 for Worker and 2 for Customer\n")
scanf("%d",Verify);
if (Verify = 1)
{
goto Batman;
}
else if (Verify = 2)
{
goto Superman;
}
}
void Batman()
{
prinf("Please write your id below\n");
scanf("%d",&i.ID);
printf("Please write your password below\n");
scanf("%d",&i.Password);
}
请帮助我提前谢谢
解决方案
我认为为了将控制权转移到其他功能,您只需像这样调用它:
if (Verify == 1)
{
Batman();
}
else if (Verify == 2)
{
Superman();
}
这里不需要goto。但是您需要将参数传递给函数,以便它可以处理这些值。
您的代码有一些问题:
1.)在比较你使用=
而不是==
2.)scanf("%d", Verify);
你需要在这里传递地址:&Verify
3.) 您没有声明任何结构变量/数组来获取输入。您还应该为它添加一个变量/数组,您应该通过 scanf in 输入Batman()
:
i workers[100];
int nWorkers;
4.) 方法的一些错别字printf
。
5.) 不typedef
用于创建结构别名:
typedef struct Worker
{
int ID;
int Password;
}i;
6.) Superman() 方法似乎没有在任何地方定义(也许你的代码仍然是 WIP)。但是 Batman() 可以这样改进:
void Batman()
{
printf("Please write your id below\n");
scanf("%d",&workers[nWorkers].ID); // Initialize it to zero in main()
printf("Please write your password below\n");
scanf("%d",&workers[nWorkers].Password);
nWorkers++;
}
推荐阅读
- c# - c# webclient下载图片失败
- phpstorm - PhpStorm:具有共同核心的多个项目
- postgresql - 如何使用 gorm 从项目 B 中的 go1.12 Flex 实例连接到项目 A 中的 GCP PostgreSQL 11 DB
- javascript - 与 MongoDB 的异步 Javascript -
- r - 如何创建“如果,那么”来组织数据?
- python - 如何在 Python 中裁剪 SVG 图像?
- jquery - JQuery:使用通配符查找数据属性
- reactjs - 在承诺中反应 useState setter 不更新
- angular - resolveJsonModule 不能与 Angular 10 一起使用?
- javascript - 使用没有页眉和页脚的 JS 将 Html 转换为 MS Word