我有这个名为 CheckEmployee 的函数。它打开一个文本文件并检查用户输入的 id 是否存在于记录中:
void CheckEmployee()
{
system("CLS");
char empID[5];
printf("Key in Employee ID: ");
scanf("%s", &empID);
FILE *fp = fopen("Employees.txt", "r");
char lineOfText[40];
while (fgets(lineOfText, 40, fp))
{
char id[6];
strncpy(id, lineOfText, 5);
id[5] = 0;
if (id == empID)
{
printf("Hello?");
}
}
fclose(fp);
}
texfile 包含以下内容:
E0001de Guzman, Franz Miguel C.
E0002de Guzman, Fernan Ralph C.
每行 40 个字符,包括空格。问题是:
- 循环 4次
while
。(应该只有两次,因为只有 2 条记录要遍历。) - 该程序在
if (id == empID)
. 但是当我用 替换它时if (strcmp(id, empID) == 0)
,答案是错误的。
更新:strcmp
现在正在工作。感谢@barak manos。循环 4次while
仍然存在,但我得到了我想要的结果。