文件实验 存入文件的实验

一个班级有若干学生,每个学生的数据包括学号、姓名、3门课成绩。从键盘输入学生信息,存入文件student中。再从文件中读出学生信息并打印(要求使用fwrite和fread函数书写)。

#include <bits/stdc++.h>
using namespace std;
class Student
{
    char num[11];
    char name[20];
    int score;
public:
    friend istream& operator >> (istream&, Student&); 
    friend ostream& operator << (ostream&, Student&); 
    int GetScore()
    {
        return score;
    }
};
istream& operator >> (istream &in, Student &s)
{
    cout<<"请输入学生信息:"<<endl;
    cout<<"学号:";
    in >> s.num;
    cout<<"姓名:";
    in >> s.name;
    cout<<"成绩:";
    in >> s.score;
    return in; 
}
ostream& operator << (ostream &out, Student &s)
{
    out <<"学号:"<<s.num<<endl; 
    out <<"姓名:"<<s.name<<endl;
    out <<"成绩:"<<s.score<<endl;
    return out;
}
int main()
{
    int ave,i;
    char ch;
    Student s[20];
    for(i=0;i<=2;i++)
    {
        cin>>s[i];
    } 
    ofstream outfile;
    outfile.open("imformation.txt",ios::out);
    outfile<<s[0]<<endl;
    outfile<<s[1]<<endl;
    outfile<<s[2]<<endl;
    outfile.close();
    
    ifstream infile;
    infile.open("imformation.txt");
    if(!infile)
    {
        cout<<"文本内容为空,无法打开!"<<endl;
        exit(1);
    }
    cout <<"下面输出学生信息:"<<endl;
    while(infile.get(ch))
    {
        cout<<ch;
    }
    infile.close();
    cout<<"平均成绩"<<(s[0].GetScore()+s[1].GetScore()+s[2].GetScore())/3;
}