从键盘输入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; }