📜  在C++中从文件读取类对象向文件写入类对象(1)

📅  最后修改于: 2023-12-03 15:07:52.399000             🧑  作者: Mango

在C++中从文件读取类对象向文件写入类对象

C++是一种类面向对象的编程语言。在C++中,我们可以使用文件流来读取和写入文件中的数据。本文介绍如何在C++中从文件读取类对象和向文件写入类对象。

从文件读取类对象

在C++中,我们可以使用文件流fstream来读取文件中的数据。假设我们有一个类Student,它有两个私有成员变量namescore,我们可以通过以下方式从文件中读取Student对象:

#include <fstream>
#include <iostream>

class Student {
public:
    std::string name;
    int score;

    void print() {
        std::cout << name << ": " << score << std::endl;
    }
};

int main() {
    std::ifstream file;
    file.open("students.txt");

    while (!file.eof()) {
        Student s;
        file >> s.name >> s.score;
        s.print();
    }

    file.close();

    return 0;
}

在上面的代码中,我们首先打开了一个名为students.txt的文件,并使用while循环读取文件中的所有数据。在每次循环中,我们定义一个Student对象s,然后使用文件流的operator>>运算符将文件中的数据读取到s对象中,并输出s对象的信息。循环结束后,我们关闭文件。

向文件写入类对象

在C++中,我们可以使用文件流fstream来写入数据到文件中。假设我们有一个类Student,我们可以通过以下方式向文件中写入Student对象:

#include <fstream>

class Student {
public:
    std::string name;
    int score;
};

int main() {
    std::ofstream file;
    file.open("students.txt");

    Student s1;
    s1.name = "Alice";
    s1.score = 95;

    Student s2;
    s2.name = "Bob";
    s2.score = 88;

    file << s1.name << " " << s1.score << std::endl;
    file << s2.name << " " << s2.score << std::endl;

    file.close();

    return 0;
}

在上面的代码中,我们首先打开了一个名为students.txt的文件,并定义了两个Student对象s1s2。然后,我们将s1s2的信息分别写入文件中,并通过使用std::endl来添加换行符。最后,我们关闭文件。

总结

通过使用文件流fstream,我们能够在C++中从文件读取类对象和向文件写入类对象。在读取文件时,我们使用operator>>运算符将文件中的数据读取到类对象中;在写入文件时,我们使用operator<<运算符将类对象写入文件中。