首页 > 编程语言 > 详细

C++ 读取文件内容到结构体并排序

时间:2019-03-13 16:06:45      阅读:311      评论:0      收藏:0      [点我收藏+]

成绩排行:从Score.txt文件读取学生信息,对其进行排序,按回答题数从大到小排,若相等,按分数从小到大排

#include<iostream>
#include<fstream>  //引用文件输入输出库
#include<string>
#include<algorithm>
using namespace std;
struct Score{
    string ID;
    int question_num;//问题数
    int score;

    friend bool operator <(Score a,Score b)  //重载小于号,定义排序规则
    {
        if(a.question_num != b.question_num)
            return a.question_num>b.question_num;
        else
            return a.score<b.score;
    }
}Stu_score[100];
int main()
{
    ifstream infile;  
    int i = 0;
    infile.open("Score.txt",ios::in);//打开文件,文件目录可以是.cpp文件所在目录,也可以是指定的绝对路径
    if(!infile)                       //打开失败
    {
        cout<<"open failed"<<endl;
        exit(1);
    }
    while(!infile.eof())
    {
        infile>>Stu_score[i].ID>>Stu_score[i].question_num>>Stu_score[i].score;//文件流输入结构体中
        i++;
    }
    sort(Stu_score,Stu_score+i);//排序
    for(int j=0;j<i;j++)
        cout<<j+1<<" "<<Stu_score[j].ID<<" "<<Stu_score[j].question_num<<" "<<Stu_score[j].score<<endl;
    return 0;
}

 

C++ 读取文件内容到结构体并排序

原文:https://www.cnblogs.com/ttzz/p/10523649.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!