У меня есть функция void display_a_student()
, которая использует два двоичных файла. Во-первых, это binary1.dat, а также index.dat, который содержит смещение каждого учащегося, добавляемого в binary1.dat.
Я пытаюсь использовать индекс, чтобы найти значение смещения для студента, которое вводится пользователем, у меня возникают проблемы с использованием функции strcmp () для сравнения введенного значения с теми значениями, которые хранятся в файле index.dat. .
Любая помощь будет высоко ценится здесь код пока.
void display_a_student()
{
struct student aStudent;
char studentNumSearch[11];
int index=0;
int found = false;
fp = fopen("binary1.dat", "a+b");
fp1 = fopen("index.dat", "a+b");
printf("\n\nWhich student are you searching for?");
scanf("%s", studentNumSearch);
fflush(stdin);
while(!found && index < 10)
{
if(strcmp(studentNumSearch,fp1[index].studentNum)==0)
{
found = true;
}
index++;
}
if (found)
{
fseek(fp, fp1[index].offset, SEEK_SET);
fread(&aStudent,sizeof(struct student),1,fp);
printf("\n\nThe student name is %s\n",aStudent.firstName);
}
else
{
printf("\n\nNo such student\n");
}
fclose( fp ); /* fclose closes file */
fclose (fp1);
getchar();
}
Я уверен, что строка: if (strcmp (studentNumSearch, fp1 [index] .studentNum) == 0)
где я иду не так, как я не уверен, как указать на файл при использовании функции strcmp ().
- отредактированный код для актуальности.