#include<iostream.h>
#include<iomainip.h>
#include<string.h>
#include<fstream.h>
class CStudent
{
public:
CStudent(char*name,char*id,float score=0);
void print();
friend ostream&operator<<(ostream& os,CStudent& stu);
friend istream&operator>>(istream& is,CStudent& stu);
private:
char strNAME[10];
char strID[10];
float fScore;
};
CStudent::CStudent(char*name,char*id,float score)
{
strncpy(strNAME,name,10);
strncpy(strID,id,10);
fscore=score;
}
void CStudent::print()
{
cout<<endl<<"学生信息如下:"<<endl;
cout<<"姓名:"<<strNAME<<endl;
cout<<"学号:"<<strID<<endl;
cout<<"成绩:"<<fScore<<endl;
}
ostream&operator<<(ostream& os,CStudent& stu)
{
os.write(stu.strNAME,10);
os.write(stu.strID,10);
os.write((char*)&stu.fScore,4);
return os;
}
istream&operator<<(istream& is,CStudent& stu);
{
char name[10],id[10];
is.read(name,10);
is.read((char*)&stu.fScore,4);
strncpy(stu.strNAME,name,10);
strncpy(stu.strID,id,10);
return is;
}
void main()
{
CStudent stu1("MaWenTao","99001",88);
CStudent stu2("LiMing","99002",92);
CStudent stu3("WangFang","99003",89);
CStudent stu1("YangYang","99004",90);
CStudent stu1("DingNing","99005",80);
fstream file1;
file1.open("student.dat",ios::out|ios::in|ios::binary);
file1<<stu1<<stu2<<stu3<<stu4<<stu5; \\这句意思是?这里<<是重载了的那个意思?
CStudent*one=new CStudent("",""); \\这又表示什么?
const int size=24;
file1.seekp(size*4);
file1.seekp(size*1);
file1.seekp(size*2,ios::cur);
file1.close();
delete one;
}
还有,二进制文件的后缀是dat?可是我在电脑里建一个dat结尾的文件,会变成暴风影音的文件。