ファイルを検索してインデックスを見つけるモジュールがあり、見つかった場合は、そのインデックスに関連する詳細を出力することになっています。プログラムはコンパイルおよび実行されますが、患者が保存されているかどうかに関係なく、患者が見つからないことが出力されます。私が見逃している論理エラーは何ですか?
注:patientCount は、別のファイルに書き込まれ、患者が追加されるたびに更新されるグローバル変数です。
void patientSearch(struct patientRec patient[], struct apptRec appt[])
{
system("cls");
int c=0;
char search[6], admit;
printf("Enter the patient ID of the patient you would like to search for.\n");
scanf("%i", &search);
fflush(stdin);
FILE *fp;
fp=fopen("patients.txt", "r");
if(fp==NULL)
{
printf("\nError opening file!");
}
else
{
for (c=0; c<patientCount; c++)
{
if (search==patient[c].patientID)
{
printf("\nPatient found.\n\n");
printf("Patient ID: %i", patient[c].patientID);
fscanf(fp, "%s", patient[c].fName);
printf("\nPatient First Name: ");
puts(patient[c].fName);
fscanf(fp, "%s", patient[c].sName);
printf("\nPatient Surname: ");
puts(patient[c].sName);
fscanf(fp, "%i %c", patient[c].age, patient[c].sex);
printf("\nPatient Age: %i\nPatient Sex: %c", patient[c].age, patient[c].sex);
fscanf(fp, "%s", patient[c].notes);
printf("\n\nNotes: \n");
puts(patient[c].notes);
}
else
{
fscanf(fp, "\n");
}
}
}
fclose(fp);
if (c==patientCount)
{
printf("\nThis patient does not exist. Would you like to admit this patient?\n1: Yes\n2: No\n");
scanf(" %c", &admit);
if (admit=='1')
{
admitPatient(patient, appt);
}
}
}