Подскажите как отсортировать даные в файле по одному критерию? Код | #include <iomanip> #include <stdlib.h> #include <fstream> #include<iostream> using namespace std; #define MAXLEN 20 struct Team{ //определяем структуру team(команда) int Num; char name[MAXLEN]; //имя int washer; //количество голов int transmission;//кол-во голевых передач double time;//часы }; int enterChoice(void); void textFileS(fstream&); void textFileD(fstream&); void OutputD(); void OutputS(); void outputLine (ostream&, Team); int main(){ setlocale(LC_ALL,"Russian"); fstream inOutTeam("Dynamo.dat", ios::in | ios::out); if(!inOutTeam){ cerr<< "Errror" <<endl; exit(1); } int choice; while((choice=enterChoice()) !=5) { switch(choice){ case 1: textFileD(inOutTeam); break; case 2: textFileS(inOutTeam); break; case 3: OutputD(); break; case 4: OutputS(); break; } inOutTeam.clear(); } system("pause"); return(0); } int enterChoice(void){ cout<<"1- создание и заполнение файла Dynamo.dat"<<endl; cout<<"2- создание и заполнение файла Spartak.dat"<<endl; cout<<"3- Просмотр файла Dynamo.dat"<<endl; cout<<"4- Просмотр файла Spartak.dat"<<endl; int menuChoice; cin>>menuChoice; return menuChoice; } void textFileD(fstream &readFromFile){ ofstream outCreateFile("Dynamo.dat", ios::out); if(!outCreateFile){ cerr<<"Errror"<<endl; exit(1); } Team plauer; for (plauer.Num=1; plauer.Num<=2; plauer.Num++){ cout<<"Игрок "<<plauer.Num<<":"<<endl; cout<<"Имя "; cin>>plauer.name; cout<<"Голов "; cin >> plauer.washer; cout<<"голевых передач "; cin >> plauer.transmission; cout<<"Time "; cin >> plauer.time; outCreateFile.write((char*)&plauer,sizeof(plauer)); } } void textFileS(fstream &readFromFile){ ofstream outCreateFile("Spartak.dat", ios::out); if(!outCreateFile){ cerr<<"Errror"<<endl; exit(1); } Team plauer; for (plauer.Num=1; plauer.Num<=2; plauer.Num++){ cout<<"Игрок "<<plauer.Num<<":"<<endl; cout<<"Имя "; cin>>plauer.name; cout<<"Голов "; cin >> plauer.washer; cout<<"голевых передач "; cin >> plauer.transmission; cout<<"Time "; cin >> plauer.time; outCreateFile.write((char*)&plauer,sizeof(plauer)); } } void OutputD(){ ifstream Create("Dynamo.dat", ios::in); cout<<setiosflags(ios::left) <<setw(6)<<"Номер игрока"<<setw(6) <<"Имя" <<setw(16)<<"Голов"<<setw(11)<<"Гол пер" <<setiosflags(ios::right) <<setw(10) <<"время"<<endl; Team plauer; Create.read((char*)&plauer,sizeof(Team)); while(! Create.eof()){ outputLine(cout, plauer); Create.read((char*)&plauer,sizeof(Team)); } } void OutputS(){ ifstream Create("Spartak.dat", ios::in); cout<<setiosflags(ios::left) <<setw(6)<<"Номер игрока"<<setw(6) <<"Имя" <<setw(16)<<"Голов"<<setw(11)<<"Гол пер" <<setiosflags(ios::right) <<setw(10) <<"время"<<endl; Team plauer; Create.read((char*)&plauer,sizeof(Team)); while(! Create.eof()){ outputLine(cout, plauer); Create.read((char*)&plauer,sizeof(Team)); } } void outputLine(ostream &output, Team c){ output<<setiosflags(ios::left)<<setw(6)<<c.Num <<setw(6)<<c.name <<setw(16)<<c.washer<<setw(11)<<c.transmission <<setiosflags(ios::right) <<setw(10) <<c.time<<endl; }
|
Мне нужно отсортировать файл по (washer+transmission) как это сделать?
|