You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

按HR、Developer等职位筛选员工无输出,求代码排查帮助

C++员工职位筛选代码无输出问题排查

以下是导致代码无输出的核心原因及修复方案:

1. C风格字符串比较错误

这是最可能的问题:C++中不能直接用==比较char[]类型的字符串,emp[i].designation == department实际是比较两个字符串的内存地址,而非内容是否一致。

修复方式:使用C标准库的strcmp函数(需包含<cstring>头文件),判断返回值是否为0(表示字符串相等):

#include <cstring>
// ...
if (strcmp(emp[i].designation, department) == 0)

2. num变量值异常

如果num(员工总数)的值为0或负数,循环for (int i = 0; i <= num - 1; i++)根本不会执行,直接进入无记录分支。若连"No records Found"都看不到,需检查:

  • num是否正确初始化或赋值(比如添加员工后是否更新了num)
  • system("cls")清屏后,后续输出是否被光标定位到了不可见区域

3. gotoXY光标定位问题

gotoXY(0,7)这类函数会把输出光标定位到屏幕第7行,如果控制台窗口高度不足,这部分内容会被隐藏,导致看起来没有输出。

临时验证方案:注释掉所有gotoXY相关代码,直接用普通cout输出,看是否能显示内容。

4. 输入处理缺陷

cin >> department会在空格处截断输入,如果职位名称包含空格(比如"Senior Developer"),department只会存储前半部分,导致匹配失败。

修复方式:改用getline读取完整输入,注意先清除之前的换行符:

cin.ignore(); // 清除cin >>留下的换行符
cin.getline(department, sizeof(department));

5. emp数组未正确初始化

如果emp数组中的designation字段未被正确赋值(比如是空字符串、乱码),自然无法匹配输入的职位,导致无输出。需检查员工数据的初始化逻辑是否正确。


内容的提问来源于stack exchange,提问作者Maheswar reddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 12:40:30