写一个C++代码,要求如下:将学生信息写入文本文件。一个学生的信息包括姓名和成绩,这些信息分别写入文件。要求:(1)学生的信息用一个Student类的对象表示,包含string firstName、char mi、string lastName、int score。 (2)创建两个Student对象,将它们写入一个名为object.dat的文件,然后再从文件读出两个对象内容,利用while循环判断。 (3)程序包含三个文件:Student.h,Student.cpp(25分),BinaryObjectIO.cpp(25分)文件,第三个文件中包含一个全局函数void displayStudent(Student student)的定义。
时间: 2023-03-08 07:55:47 浏览: 130
#include <iostream>
#include <fstream>
#include <string>
using namespace std;// 定义Student类
class Student {
public:
string firstName;
char mi;
string lastName;
int score; // 构造函数
Student(string firstName, char mi, string lastName, int score) {
this->firstName = firstName;
this->mi = mi;
this->lastName = lastName;
this->score = score;
}
};// 将学生信息写入文件
void writeStudentInfoToFile(string filename, Student student1, Student student2) {
ofstream outFile;
outFile.open(filename, ios::binary);
// 写入第一个学生
outFile.write((char*)&student1, sizeof(student1));
// 写入第二个学生
outFile.write((char*)&student2, sizeof(student2));
outFile.close();
}// 从文件中读出学生信息
void readStudentInfoFromFile(string filename) {
ifstream inFile;
inFile.open(filename, ios::binary);
// 循环读取
while(inFile.peek() != EOF) {
Student student;
// 读取一个学生
inFile.read((char*)&student, sizeof(student));
// 显示学生信息
displayStudent(student);
}
inFile.close();
}// 显示学生信息
void displayStudent(Student student) {
cout << student.firstName << " " << student.mi << " " << student.lastName << " " << student.score << endl;
}int main() {
// 创建两个学生
Student student1("John", 'A', "Doe", 89);
Student student2("Jane", 'B', "Doe", 91); // 将两个学生的信息写入文件
writeStudentInfoToFile("object.dat", student1, student2); // 从文件中读取两个学生的信息
readStudentInfoFromFile("object.dat"); return 0;
}
阅读全文