对文本文件的内容排序,将结果输出到另一个文件(P311)
#include<iostream>
#include<fstream>
#include<cstdlib>
using namespace std;
const int MAX_NUM=1000;
class CStudent
{
public:
char id[11];
char name[21];
int score;
}stu[MAX_NUM];
int MyCompare(const void *el,const void *e2)
{
return(*(CStudent *)el).score-(*(CStudent*)e2).score;
}
int main()
{
ifstream srcFile("score.txt",ios::in);
if(!srcFile)
{
cout<<"opening source file error."<<endl;
return 0;
}
ofstream destFile("out.txt",ios::out);
if(!destFile)
{
srcFile.close();
cout<<"opening destination file error."<<endl;
return 0;
}
int n=0;
cout<<"排序前:\n";
while(srcFile>>stu[n].id>>stu[n].name>>stu[n].score)
{
cout<<stu[n].id<<""<<stu[n].name<<""<<stu[n].score<<endl;
n++;
}
qsort(stu,n,sizeof(CStudent),MyCompare);
cout<<"排序后:\n";
for(int i=0;i<n;++i)
{
cout<<stu[i].id<<""<<stu[i].name<<""<<stu[i].score<<endl;
destFile<<stu[i].id<<""<<stu[i].name<<""<<stu[i].score<<endl;
}
destFile.close();
srcFile.close();
return 0;
}

浙公网安备 33010602011771号