当前位置:首页 C++ > 正文

C++ 读取文本文件内容到结构体数组中并排序

作者::2024-03-06 21:07:18 C++阅读 2569
C++ 读取文本文件内容到结构体数组中并排序

C++ 读取文本文件内容到结构体数组中并排序

以下是一个C++程序示例,它演示了如何读取文本文件的内容到结构体数组中,并对结构体数组进行排序。在这个示例中,假设文本文件中的每一行包含姓名和年龄,以空格分隔。

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

using namespace std;

// 定义一个结构体表示一个人的信息
struct Person {
    string name;
    int age;
};

// 比较函数,用于排序
bool comparePeople(const Person& p1, const Person& p2) {
    return p1.age < p2.age;
}

int main() {
    // 打开文件
    ifstream file("people.txt");
    if (!file) {
        cerr << "无法打开文件!" << endl;
        return 1;
    }

    // 创建一个存储人员信息的vector
    vector<Person> people;
    string name;
    int age;

    // 从文件中读取每一行,并将其解析为姓名和年龄,存储到结构体数组中
    while (file >> name >> age) {
        Person person{name, age};
        people.push_back(person);
    }

    // 关闭文件
    file.close();

    // 对人员信息按年龄进行排序
    sort(people.begin(), people.end(), comparePeople);

    // 打印排序后的人员信息
    cout << "按年龄从小到大排序后的人员信息:" << endl;
    for (const auto& person : people) {
        cout << "姓名: " << person.name << ", 年龄: " << person.age << endl;
    }

    return 0;
}


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • 最新推荐

    热门点击