#pragma warning (disable:4996)
#include<iostream>
#include<fstream>
using namespace std;
class student
{
private:
char name[20];
long number;
char bianji[20];
public:
student(const char *_name="dsf", long _number=122, const char _bianji[]="dcs") :number(_number)
{
strcpy(name, _name);
strcpy(bianji, _bianji);
}
void print()
{
cout << "学生姓名:" << name << endl;
cout << "学生学号:" << number << endl;
cout << "学生班级:" << bianji << endl;
}
void set( char* _name , long _number, char* _bianji)
{
strcpy(name, _name);
number = _number;
strcpy(bianji, _bianji);
}
};
int main()
{
cout << "输入多少学生信息:" << endl;
int n;
cin >> n;
char name[20];
long number;
char banji[20];
student* p = new student[n];
for (int i = 0; i < n; i++)
{
cout << "输入学生姓名:" << endl;
cin >> name;
cout << "输入学生学号:" << endl;
cin >> number;
cout << "输入学生班级:" << endl;
cin >> banji;
p[i].set(name, number, banji);
}
ofstream ofile("d://student.dat", ios::out|ios::binary );
if (!ofile.fail())
{
ofile.write((char*)&p, sizeof(p));
}
ofile.close();
ifstream ifile("d:\\student.dat", ios::in|ios::binary);
student* m = new student[n];
if (!ifile.fail())
{
ifile.read((char*)&m, sizeof(m));
}
for (int i = 0; i < n; i++)
{
m[i].print();
}
ifile.close();
return 0;
}
注:可以在显示屏上显示出来
但是却无法在文件上显示出来。
点开student.dat,里面出现了乱码。