此处的代码正在用于创建学生报告卡项目。在试图理解我们想不通的使用和功能如下代码:reinterpret_cast <char *>(&st)和(-1)* static_cast <int>是什么意思?
File.read(reinterpret_cast<char *> (&st), sizeof(student));
int pos=(-1)*static_cast<int>(sizeof(st));
File.read(reinterpret_cast<char *> (&st), sizeof(student));
if(st.retrollno()==n)
{
st.showdata();
cout<<"\n\nPlease Enter The New Details of student"<<endl;
st.getdata();
int pos=(-1)*static_cast<int>(sizeof(st));
File.seekp(pos,ios::cur);
File.write(reinterpret_cast<char *> (&st), sizeof(student));
cout<<"\n\n\t Record Updated";
found=true;
}
什么是学生?该代码将其读为原始二进制文件。如果学生类型不是标准布局,则为UB。它也有问题 – Danh
你问你的问题的方式表明你不明白'reinterpret_cast'和'static_cast'是什么。 – Omnifarious