Как назначить cString только для структурной переменной, если условие истинно C ++? - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть программа, считывающая информацию о сотрудниках из текстового файла и сохраняющая ее в структуре. У меня также есть перечисление с F, представляющим штатного сотрудника, и P, представляющим работающего неполный рабочий день. Если работник работает полный рабочий день, я вычитаю 5 долларов из их оплаты профсоюзных взносов. Текстовый файл выглядит следующим образом: input

Вот моя структура и перечисление:

 enum EmpType{
      F, P
 };

struct EmpData{
     char* name;
     float payrate;
     float hours;
     EmpType employee_type;
     double pay;
     char deductions[];
};

Мне нужно распечатать "Вычтенные союзные сборы", если 5 долларов был вычтен из заработной платы работника. Я предполагаю, что мне нужно какое-то заявление if, которое распечатывает его, если вычитаются сборы, и ничего не делает, когда не вычитаются сборы. и это то, что я до сих пор. Я попытался назначить удержания указателю и изменить типы, но я просто не могу понять, что делать. Когда я пытаюсь назначить «вычеты из профсоюзных взносов» на вычеты сотрудников, он говорит: «выражение должно быть изменяемым значением».

employee[entries]->pay = employee[entries]->payrate * employee[entries]->hours; // calculating pay

if (employee[entries]->employee_type == F)
{
    employee[entries]->pay = employee[entries]->pay - 5;
}
if (employee[entries]->pay == employee[entries]->pay - 5)
{
    employee[entries]->deductions = // code goes here?
}

Спасибо за любую помощь. Это мой первый пост, поэтому, пожалуйста, дайте мне знать, если это не ясно или что-то еще. Вот как должен выглядеть вывод (у меня все работает, но вычеты): output

1 Ответ

0 голосов
/ 13 февраля 2020

Ошибка компиляции "выражение должно быть изменяемым значением" меня смущает.

Объявите размер для массива stati c. т.е. отчисления в структуру EmpData. Затем с помощью команды strcpy скопируйте «удержанные ссуды» в вычеты.

strcpy (employee[entries]->deductions, "Union dues detected");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...