定义学生类,该类包含学生的一些基本信息:学号、姓名、性别、成绩。定义流对象,实现用write函数将学生信息以二进制方式写到磁盘文件stu.dat中。再用read将磁盘中的学生信息读到内存显示在屏幕上。
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
class Student
{
char num[10];
char name[10];
char sex[3];
int score;
public:
Student():num( ),name(),sex(),score(0)
{}
Student(const char *nu , const char *na ,const char *se ,const int s = 0)
{
strcpy(num, nu);
strcpy(name, na);
strcpy(sex, se);
score = s;
}
friend ostream & operator<<(ostream &out, const Student &s)
{
out << s.num << endl;
out << s.name << endl;
out << s.sex << endl;
out << s.score << endl;
return out;
}
};
void CreateBiFile(const char *filename)
{
ofstream out(filename);
Student stu[3] = { Student("B16112112","孟AB","女",95),Student("B16112113","孟CD","男",100),Student("B16112114","孟EF","男",92) };
out.write((char *)stu, sizeof(Student) * 3);
out.close();
}
void ReadBiFile(const char *filename)
{
Student stu[5];
int i = 0;
ifstream in(filename);
while (!in.eof())
{
in.read((char *)&stu[i++], sizeof(Student));
}
for (int j = 0; j < i - 1; j++)
cout << stu[j];
in.close();
}
int main()
{
CreateBiFile("F:\\stu.dat");
ReadBiFile("F:\\stu.dat");
return 0;
}