私は 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 つしかないため、2 回だけにする必要があります)。 - プログラムの で実行時エラーが発生しました
if (id == empID)
。しかし、それを に置き換えるとif (strcmp(id, empID) == 0)
、答えは false になります。
更新:strcmp
現在機能しています。@barak manos に感謝します。4 回のwhile
ループはまだ続きますが、必要な結果が得られます。