仅在条件为真C ++时才将cString分配给结构变量?

问题描述 投票:0回答:1

我有一个程序,它从文本文件中读取员工信息并将其存储到结构中。我还有一个枚举,其中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

c++ structure
1个回答
0
投票
声明静态数组的大小。即在结构EmpData中的推论。然后使用strcpy将“已扣除的工会会费”复制到扣除额中。

strcpy (employee[entries]->deductions, "Union dues detected");

© www.soinside.com 2019 - 2024. All rights reserved.