问题及代码:
(1)二进制文件写入
#include<iostream>
#include<fstream>
#include<cstdlib>
using namespace std;
struct student
{
char name[5];
int num;
int age;
char sex;
};
student stud[3]=
{
{"li",25,18,'f'},
{"fun",32,19,'m'},
{"wang",40,17,'f'}
};
int main()
{
ofstream outfile("stud.dat",ios::binary);
if(!outfile)
{
cerr<<"open error!"<<endl;
exit(1);
}
for(int i=0;i<3;i++)
outfile.write((char*)&stud[i],sizeof(stud[i]));
cout<<"任务完成,请查看文件。"<<endl;
outfile.close();
return 0;
}
(2)读出二进制文件
#include<iostream>
#include<fstream>
#include<cstdlib>
using namespace std;
struct student
{
char name[5];
int num;
int age;
char sex;
};
int main()
{
student stud[3];
int i;
ifstream infile("stud2.dat",ios::binary);
if(!infile)
{
cerr<<"open error!"<<endl;
exit(1);
}
for(int i=0;i<3;i++)
infile.read((char*)&stud[i],sizeof(stud[i]));
infile.close();
for(i=0;i<3;i++)
{
cout<<"name:"<<stud[i].name<<endl;
cout<<"num:"<<stud[i].num<<endl;
cout<<"age:"<<stud[i].age<<endl;
cout<<"sex:"<<stud[i].sex<<endl;
cout<<endl;
}
return 0;
}
运行结果: