C 显示记录功能,显示非空记录,不显示记录
设置一个数据库,该数据库接收用户的输入(名字、姓氏、ID号等),并将信息输入到二进制文件中,以更新信息、删除记录和更新提供的任何信息。除了显示非空记录的功能外,所有其他功能似乎都正常工作(不要介意坏代码,我对编程相当陌生)。信息似乎被保存到文件中,因为其他函数可以访问它(都是相同的文件指针)。我已经检查了文件是否被空文件的初始化所覆盖,据我所知,情况并非如此 我已经检查了文件是否被空文件的初始化所覆盖,据我所知,情况并非如此。我还尝试更新DisplayRecord函数中的if语句,以便它读取所有文件并仅显示具有已建立ID号的文件,但在函数运行时仍显示nullC 显示记录功能,显示非空记录,不显示记录,c,C,设置一个数据库,该数据库接收用户的输入(名字、姓氏、ID号等),并将信息输入到二进制文件中,以更新信息、删除记录和更新提供的任何信息。除了显示非空记录的功能外,所有其他功能似乎都正常工作(不要介意坏代码,我对编程相当陌生)。信息似乎被保存到文件中,因为其他函数可以访问它(都是相同的文件指针)。我已经检查了文件是否被空文件的初始化所覆盖,据我所知,情况并非如此 我已经检查了文件是否被空文件的初始化所覆盖,据我所知,情况并非如此。我还尝试更新DisplayRecord函数中的if语句,以便它读取所有
// 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
它假定显示所有包含信息的记录。但是实际的输出没有显示任何记录。< /P>是C还是C++?看起来像C。您的问题需要有正确的语言标记,并添加
PatientData
结构的定义。方便阅读:请发布一条消息,这样我们可以重现问题,以便帮助您调试。关于:if(result!=0&
调用read()
可以返回负值。(这将导致表达式的计算结果为true
。这不是您想要的。建议:if(result>0&
OT:about:struct PatientData Patient={0;
不需要初始化结构实例:Patient
,因为对read()的以下调用完全覆盖这个C或C++?看起来像C.的问题,有正确的语言标记,并添加了<代码> PurraseDATAs//>结构的定义。方便阅读:请发布一个我们可以复制的问题,这样我们可以帮助你调试它。关于:<代码>(结果!=0 & & /代码>调用到<代码> >()
可以返回负值。(这将导致该表达式的计算结果为true
。这不是您想要的。建议:如果(结果>0&&
OT:about:struct PatientData Patient={0;
不需要初始化结构实例:Patient
,因为对read()
的以下调用将完全覆盖它