#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <cstring>

class Person {
public:
    Person() = default;

    // コンストラクタ
    Person(const std::string& name, int age, const std::string& gender)
        : name(name), age(age), gender(gender) {}

    // データをファイルから読み込むメソッド
    static std::vector<Person> readFromFile(const std::string& filename) {
        std::vector<Person> people;
        std::ifstream infile(filename);

        if (!infile) {
            std::cerr << "ファイルを開けませんでした" << std::endl;
            return people;
        }

        Person person;
        while (infile >> person.name >> person.age >> person.gender) {
            people.push_back(person);
        }

        infile.close();
        return people;
    }

    // データを表示するメソッド
    void displayData() const {
        std::cout << "名前: " << name << ", 年齢: " << age << ", 性別: " << gender << std::endl;
    }

private:
    std::string name;
    int age;
    std::string gender;
};

int main() {
    std::vector<Person> people = Person::readFromFile("data.txt");

    // データを表示して確認します
    for (const auto& person : people) {
        person.displayData();
    }

    return 0;
}