I have to read from a .txt file and out it with a different .txt file. I have to use insertion sort in order to sort them based on two numbers. I could only get this far, I don't know how to do insertion sort in this program where I have two numbers to sort to.
Here is my code:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(void)
{
    int serialno[100], suratno[100], ayatno[100];
    string order;
    string str;
    char ch;
    int i = 0;
    int j, temp;
    ifstream fin;
    fin.open("text.txt");
    if(!fin)
    {
        cout << "Cannot open file \'text.txt\'! Quitting.\n";
        exit(0);
    }
    while(fin)
    {
        fin.get(ch); //gets .
        getline(fin, order, '('); //allegedly it removes the delimiter char from stream too
        fin >> suratno;
        fin.get(ch); //gets :
        fin >> ayatno;
        fin.get(ch); //gets )
        fin.get(ch); //gets \n
        cout << serialno << "." << order << "("<<suratno<<":<<ayatno<<")\n";
    }
    fin.close();
    //sort algorithm            
    for (int i = 0; i < length; i++){
        j = i;
        while (j > 0 && suratno [j] < suratno [j-1]){
              temp = suratno [j];
              suratno [j] = suratno [j-1];
              suratno [j-1] = temp;
              j--;
              cout << serialno << endl;
              }
        }
    }
    ofstream fout;
    fout.open("newtext.txt");
    if(!fout)
    {
        cout << "Cannot open output file\'orderedquranorders.txt\'!Quitting.\n";
        exit(0);
    }
    i = 0;
    //write sorted list to output file
    fout.close();
    cout << i << " orders successfully sorted and written.\n";
}
this is the text file (numbers in bracket should be used, firstly with number before colon, and secondly with number after colon):
1. Do not be rude in speech (3:159) 
2. Restrain Anger (3:134)
3. Be good to others (4:36)
4. Do not be arrogant (7:13)
5. Forgive others for their mistakes (7:199)
6. Speak to people mildly (20:44)
7. Lower your voice (31:19)
8. Do not ridicule others (49:11)
9. Be dutiful to parents(17:23)
current output:
- Do not be rude in speech (3:159)
- Restrain Anger (3:134)
- Be good to others (4:36)
- Be dutiful to parents(17:23)
expected output:
- Restrain Anger (3:134)
- Do not be rude in speech (3:159)
- Be good to others (4:36)
- Be dutiful to parents(17:23)
sorted in terms of both the numbers and the serial no stays the same
 
     
     
    