c++ - 仅当条件为真 C++ 时,如何将 cString 分配给结构变量?
问题描述
我有一个程序从文本文件中读取员工信息并将其存储到一个结构中。我还有一个F
代表全职员工和P
代表兼职员工的枚举。如果员工是全职员工,我会从他们支付的工会会费中扣除 5 美元。文本文件如下:
这是我的结构和枚举:
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?
}
解决方案
编译错误“表达式必须是可修改的值”让我感到困惑。
声明静态数组的大小。即,结构 EmpData 中的扣除。然后用strcpy把“Union会费扣减”复制到deductions中。
strcpy (employee[entries]->deductions, "Union dues detected");
推荐阅读
- c - 当我使用 pthread 时新窗口不打开
- python - 我有具有二进制特征的机器学习数据。如何强制自动编码器返回二进制数据?
- bash - 用 bash 修改 335 个随机行的 3d 列
- kotlin - 此注释不适用于没有支持字段或委托的目标成员属性
- google-cloud-firestore - 在地图 Firestore 中运行事务
- powerbi - POWERBI 通过与英文不同的字母更改矩阵中列的顺序
- python - 为什么这条希尔伯特曲线不画?
- html - 如何根据浏览器视图对 HTML 文件的内容进行排序?
- bash - 如何将 Docker-compose 消息隐藏到 stderr?
- python-3.x - 如何形成连通分量的三元组以形成无向图?