我正在寻找一个图书馆管理系统计划来制作学校项目。我在互联网上找到了一个好的。代码可以在这里看到: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)'
有人可以提供有关错误以及如何解决这些错误的帮助吗? 谢谢。
答案 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));
为了使其发挥作用。