Как прыгать между функциями - PullRequest
0 голосов
/ 22 апреля 2019

Я пытаюсь сделать торговый комплекс, но я не могу переключаться между функциями Я попробовал 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);
}   

пожалуйста, помогите мне Спасибо заранее

1 Ответ

0 голосов
/ 22 апреля 2019

Я думаю, что для того, чтобы переместить управление в другую функцию, вам просто нужно вызвать его так:

    if (Verify == 1)
    {
        Batman();
    }
    else if (Verify == 2)
    {
        Superman();
    }

Нет необходимости идти сюда. Но вам нужно передать аргумент функции, чтобы он мог обрабатывать значения.

Ваш код имеет некоторые проблемы:

1.) При сравнении вы используете = вместо ==

2.) scanf("%d", Verify); Вам необходимо указать адрес здесь: &Verify

3.) Вы не объявили никакой структурной переменной / массива для ввода данных. Вы также должны добавить переменную / массив для него, где вы должны взять ввод через scanf в Batman():

  i workers[100];
  int nWorkers;

4.) Некоторые опечатки для printf метода.

5.) Не используется typedef для создания псевдонима структуры:

typedef struct Worker
{
    int ID;
    int Password;
}i;

6.) Метод Superman (), кажется, нигде не определен (возможно, ваш код все еще WIP). Но Бэтмен () можно улучшить следующим образом:

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++;
} 

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...