Настройка базы данных, которая принимает входные данные от пользователя (имя, фамилия, идентификационный номер и т. Д.) И вводит информацию в двоичный файл для обновления информации, удаления записей и обновления любой предоставленной информации. Кажется, что все другие функции функционируют должным образом (не обращайте внимания на плохой код, я довольно новичок в программировании), кроме функции отображения непустых записей. кажется, что информация сохраняется в файлах, потому что другие функции имеют к ней доступ (все тот же указатель файла). Я проверил, был ли файл перезаписан инициализацией пустого файла, и это не имело место в моем понимании.
Я проверил, был ли файл перезаписан инициализацией пустого файла, и это не имело место, насколько я понимаю. Я также попытался обновить оператор if в функции DisplayRecord, чтобы он считывал все файлы и отображал только те, которые имеют установленный идентификационный номер, но при запуске функции он по-прежнему показывает ноль.
// fopen opens the file; exits if file cannot be opened
if ((cPtr = fopen("patient.dat", "rb")) == NULL) {
puts("File could not be opened.");
}//end If
else {
printf( "Patient ID\t Last Name\t first name\t DOB \tGender\t Doctor ID\t
Doctor last name\t Room Number\n" );
struct PatientData {
unsigned int Pat_ID; //ID number
char F_Name[25];//first name
char L_Name[25]; //last name
char Phone_num[20] ; //Phone number
char gender[2];
unsigned int doctor_ID;
char doc_LN[25];
unsigned int room_num;
char DoB[10];
};
//read all records until eof
while(!feof(cPtr)){
//create blank set to compare to data on file
struct PatientData Patient= { 0, "","","","",0,"", 0,"" };
int result=fread(&Patient,sizeof(struct PatientData), 1 , cPtr);
if(result!=0 && Patient.Pat_ID!=0){
printf("%-d%-15s%-15s%-10s%-12s%-15d%-15s%-10d\n",
Patient.Pat_ID,
Patient.L_Name,Patient.F_Name,Patient.DoB,Patient.gender,
Patient.doctor_ID, Patient.doc_LN,Patient.room_num);
}
fclose(cPtr); // fclose closes the file
Предполагается, что отображаются все записи, содержащие информацию. но фактический вывод не показывает никаких записей.