C получает () команда удаляет переменные данные - PullRequest
0 голосов
/ 16 декабря 2018

Мне нужно написать программу на C для школьного проекта, которая регистрирует гериатрического клиента, это мой код:

int position=0, correctData=0, day, month, year, phone, iRS, exercises;
float height, weight;
char confirmation, name[100], address[100], numberToCheck[9];
for(int i=0; Client[i]->name!="NULL";i++){
    position++;
    if(i==30){
        break;
    }
}

do{
    fflush(stdin);
    system("cls");
    printf("\n\tINSERT NEW CLIENT");
    printf("\nInsert client name: ");
    gets(name);
    printf("\nInsert client address: ");
    gets(address);
    printf("\nInsert client birthday(dd/mm/yyyy): ");
    scanf("%d/%d/%d", &day,&month,&year);
    do{
    fflush(stdin);
    strcpy(numberToCheck, "");
    printf("\nInsert client phone number: ");
    gets(numberToCheck); //THIS IS THE LINE ERASING MY ADDRESS VARIABLE
    if(isPhone(numberToCheck)==0){
        printf("\nNumber not valid");
    }
    }while(phone(numberToCheck)==0);
    phone= validateInput(numberToChek);
    do{
    fflush(stdin);
    strcpy(numberToCheck, "");
    printf("\nInsert client tax number: ");
    gets(numberToCheck);
    if(isIRS(numberToCheck)==0){
        printf("\nNumber not valid");
    }
    }while(isIRS(numberTocheck)==0);
    iRS= validateInput(numberToCheck);
    printf("\nInsert client height: ");
    scanf("%f", &height);
    printf("\nInsert client weight: ");
    scanf("%f", &weight);
    printf("\nInsert the number of exercises made: ");
    scanf("%d", &exercise);
    fflush(stdin);
    system("cls");
    printf("Name                    : %s", name);
    printf("\nAddress                 : %s", address);
    printf("\nBirthday                : %02d/%02d/%04d", dia, mes, ano);
    printf("\nPhone number            : %d", telefone);
    printf("\IRS                      : %d", contribuinte);
    printf("\nHeight and Weight       : %.2fm e %.2fKg", height, weight);
    printf("\nNumber of exercises     : %d", exercise);
    printf("\n\nIs the data correct??(Y/N): ");
    scanf("%c", &confirmation);
    if(confirmation=='Y' || confirmation=='y'){
            strcpy(Client[position]->name, name);
            strcpy(Client[position]->address, address);
            Client[position]->dayBirth = day;
            Client[position]->monthBirth = month;
            Client[position]->yearBirth = year;
            Client[position]->phone = phone;
            Client[position]->iRS = iRS;
            Client[position]->height= height;
            Client[position]->weight= weight;
            Client[position]->exercise = exercise;
        correctData = 1;
    }

    }while(correctData==0);

    printf("\nUser registered");
    printf("\n\nPress Enter to continue");
    system("pause >nul /nobreak");

Я получаю по ссылке массив Client [100], чтобы я мог изменитьего элементы.В части кода, чтобы проверить, является ли это телефонный номер / номер iRS, я использую предварительно закодированный подмодуль для его проверки.

Проблема, с которой я сталкиваюсь с кодом, заключается в том, что он хранит адресклиент, но когда программа получает numberToCheck, чтобы проверить, является ли это номер телефона, переменная адреса очищается, становится пустой, и я не понимаю, почему.

Я ценю любую помощь и время, данное, чтобы помочь мне решитьпроблема

...