纠正C++学校图书馆管理程序中的两个错误

Rectifying two errors in School Library Management program in C++

我正在寻找一个 图书馆管理系统 程序来制作一个学校项目。我在网上找到了一个不错的。代码可以在这里看到:https://codereview.stackexchange.com/q/68713/153350 on code review stack exchange。我打算在上面做我的项目。

因此,我 运行 上面的代码显示了 3 个错误。一个是关于变量的多重声明,我能够纠正。

但我不明白如何处理其他两个错误。 它们都出现在函数体的以下代码行中,void write_student():

 f.write((char*)&st, sizeof(student));

第一个错误说:

Undefined symbol 'st' 

另一个说:

Could not find a match for 'ostream::write(undefined, unsigned int)' 

有人可以就问题所在以及我如何解决这些错误提供帮助吗? 谢谢。

您有这些声明...

//***************************************************************
// Global declaration for stream object, object
//****************************************************************
fstream f, f1;
book b;
student s;

...此函数涉及:

void write_student(){
    char ch;
    f.open("student.dat", ios::out|ios::app);
    do{
        s.create_student();
        f.write((char*)&st, sizeof(student));
        cout<<"\n\nDo you want to add more students...(y/n?)";
        cin>>ch;
    }while(ch=='y'||ch=='Y');
    f.close();
}

您将 &st 而不是 &s 传递给 f.write。 将主题中的行替换为

f.write((char*)&s, sizeof(student));

为了让它发挥作用。