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

时间:2017-11-13 15:31:55

标签: c++ compiler-errors user-defined-functions turbo-c++

我正在寻找一个图书馆管理系统计划来制作学校项目。我在互联网上找到了一个好的。代码可以在这里看到:https://codereview.stackexchange.com/q/68713/153350代码审查堆栈交换。我计划在其上制作我的项目。

所以,我运行了上面的代码,但它显示了3个错误。关于变量的多重声明的问题,我能够纠正这个问题。

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

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

第一个错误说:

Undefined symbol 'st' 

而另一个说:

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

有人可以提供有关错误以及如何解决这些错误的帮助吗? 谢谢。

1 个答案:

答案 0 :(得分:0)

你有这些声明......

//***************************************************************
// 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));

为了使其发挥作用。