int main()
{
Student aStudent;
ofstream outFile;
outFile.open("Students.dat“, ios::out|ios::binary);
cout<<"Enter ID, name, and grade point average"<<endl;
cout<<"Enter end-of-file key combination to end ";
while (cin>>aStudent) {
outFile.write((char*)&aStudent,sizeof(Student));
cout<<"Enter ID, name, and grade point average"<< endl;
cout<<"Enter end-of-file key combination to end ";
outFile.close();
}请问ios::in与ios::out有什么用呢?我不写跟写了也一样的,一样可以读文件,一样可以把文件写到外面的txt文件,如果文件有内容就自动清空。
还有的就是:
outFile.write((char*)&aStudent,sizeof(Student));这个是什么意思呢?为什么又有char指针又有&在同一行呢?能详细点解释一下吗?求解
outFile.write((char*)&aStudent,sizeof(Student))中的write是什么意思呢?为什么要把地址强制转换成char指针(还是字符串)呢?这条语句有什么用嗯?
追答write函数要求第一个参数必须为char*类型,表示向outFile写入以内存地址(char*)&aStudent开始,Student长度的数据。
追问所以outFile.write((char*)&aStudent,sizeof(Student));
意思就是把储存在地址aStudent的数据从第一个地址开始,写入到outFile的文件中,长度为sizeof(Student)?而转换了的(char*)就是地址
是的。
追问哦,谢谢,能加你qq之类的联系方式吗,因为最近学这个感觉还挺难的?
本回答被提问者采纳弄懂了,谢谢啦,请问能留一下qq吗?蛮多这一方面的问题的
追答慢慢搞。。这个急不来,不懂的先看下MSDN啊