fork download
  1. //http://stackoverflow.com/a/15968507/1458030
  2. #include <string>
  3. #include <algorithm>
  4. #include <iostream>
  5. #include <sstream>
  6.  
  7. using namespace std;
  8. struct row{string ID, name, rest;};
  9.  
  10. bool operator < (const row& r1, const row& r2)
  11. { return r1.name<r2.name;}
  12.  
  13. ostream &operator<<(ostream&o, const row&r)
  14. { return o<<r.ID<<'\t'<< r.name<<'\t'<< r.rest <<endl; }
  15.  
  16. int main()
  17. {
  18. stringstream fin,fout;
  19. fin<< "5" << endl;
  20. fin<< "2012019874\tZooadan Legeaf Coaa\tFemale\t65"<<endl;
  21. fin<< "1111090909\tZuilia Perez\tFemale\t701" <<endl;
  22. fin<< "2012019109\tProadan Legeaf Coaa\tFemale\t65"<<endl;
  23. fin<< "2345019176\tTrroadan Legeaf\tFemale\t98" <<endl;
  24. fin<< "2012019109\tAAroadan Legeaf Coaa\tFemale\t65"<<endl;
  25.  
  26.  
  27. int x;
  28. fin >> x; //this is the first number within ...
  29. row *rows=new row[x];
  30. for(int i=0;i<x;++i)
  31. {
  32. getline(fin, rows[i].ID, '\t'); // ID
  33. getline(fin, rows[i].name, '\t'); // name
  34. getline(fin, rows[i].rest );
  35. }
  36. std::sort(rows,rows+x);
  37. fout << x << std::endl;
  38. for(int i=0;i<x;++i)
  39. fout<<rows[i];
  40. delete []rows;
  41. cout<<"Input:\n"<< fin.str()<<"\nOutput:\n"<< fout.str();
  42. }
  43.  
Success #stdin #stdout 0s 3040KB
stdin
Standard input is empty
stdout
Input:
5
2012019874	Zooadan Legeaf Coaa	Female	65
1111090909	Zuilia Perez	Female	701
2012019109	Proadan Legeaf Coaa	Female	65
2345019176	Trroadan Legeaf	Female	98
2012019109	AAroadan Legeaf Coaa	Female	65

Output:
5
2012019109	AAroadan Legeaf Coaa	Female	65
2012019109	Proadan Legeaf Coaa	Female	65
2345019176	Trroadan Legeaf	Female	98

2012019874	Zooadan Legeaf Coaa	Female	65
1111090909	Zuilia Perez	Female	701