从键盘输入10个学生信息

从键盘输入10个学生信息(学生信息包括学号、姓名、性别、成绩)存放在磁盘文件f1.dat中,然后把f1.dat中的数据复制到f2.dat文件中并在屏幕显示出学生数据.

#include <iostream>
#include <fstream>
using namespace std;
struct student
{
public:
    void setid();
    void setname();
    void setsex();
    void setgrade();

    string getid();
    string getname();
    string getsex();
    char getgrade();
private:
    char id[5];
    char name[6];
    char sex[4];
    char grade;
};
void student::setid()
{
    cin>>id;
}
void student::setname()
{
    cin>>name;
}
void student::setsex()
{
    cin>>sex;
}
void student::setgrade()
{
    cin>>grade;
}
char student::getgrade()
{
    return grade;
}
string student::getid()
{
    return id;
}
string student::getname()
{
    return name;
}
string student::getsex()
{
    return sex;
}

int main()
{
    student stu[3];
    student stu_temp;

    cout<<"please input student data:"<<endl;
    for (int i=0;i<3;i++)
    {
        stu[i].setid();
        stu[i].setname();
        stu[i].setsex();
        stu[i].setgrade();
    }

    fstream f1("C:\\Personal\\Desktop\\C++实验\\实验四\\学生信息\\f1.dat",ios_base::in|ios_base::out);
    fstream f2("C:\\Personal\\Desktop\\C++实验\\实验四\\学生信息\\f2.dat",ios_base::in|ios_base::out);

    if(f1)
    {
        for (int i=0;i<3;i++)
        {
           f1.write(reinterpret_cast<char*>(&stu[i]),sizeof(stu[i]));
           f1.flush();
        }
        f1.seekg(ios_base::beg);

         if (f2)
        {
            for (int i = 0; i < 3; i++)
            {
                f1.read(reinterpret_cast<char*>(&stu_temp), sizeof(stu_temp));
                cout << "学号:" << stu_temp.getid() << "姓名:" << stu_temp.getname() << "性别:" << stu_temp.getsex() << "分数:" << stu_temp.getgrade() << endl;

                f2.write(reinterpret_cast<char*>(&stu_temp), sizeof(stu_temp));

            }
            f1.close();
            f2.close();
        }
        else
        {
            cout << "f1 f2 open failed" << endl;
        }
    }
    else
        cout << "open file failed" << endl;

    return 0;
}



猜你喜欢

转载自blog.csdn.net/y786256773/article/details/79960374