I am writing a program which is suppose to be able to open a file, read each line in and separate a LAST NAME, First name: 3 test scores. the format of the file being read is Mark Titan: 80 80 85. I am suppose to output TITAN, Mark: 80 80 85. We are using strings, and so far using my teachers code i have gotten the file to separate completely. it would show the test scores in order from 1-100(100 comes first because it starts with 1 but i can fix that after) and then alphabetically the names. I need help creating a substr of the line, creating a string of just the full name and splitting that into first and last and then sort them correctly. I have been messing with .find but im not sure how to split this vector into smaller vectors. please help and thank you.
    #include <iostream>
    #include <fstream>
    #include <vector>
    #include <sstream>
    using namespace std;
    void openFile(ifstream &in);
    void processFile(ifstream &in, vector<string> &list);
    void display(const vector<string> &list);
    void sort(vector<string> &list);
    int main(int argc, char *argv[])
    {
        ifstream in;
        string line;
        vector<string> words;
        openFile(in);
        processFile(in, words);
        display(words);
        return 0;
    }
    void openFile(ifstream &in)
    {
        string fileName;
        bool again;
        do
        {
            again = false;
            cout<<"What is the name of the file to you wish to sort? (.txt will be added if no extension is included): ";
            cin>>fileName;
            if(fileName.find('.') >= fileName.size() )
                fileName +=  ".txt";
            in.open(fileName.c_str());
            if(in.fail())
            {
                in.close();
                in.clear();
                again = true;
                cout<<"That file does not exist! Please re-enter"<<endl;
            }
        }while(again);
    }
    void processFile(ifstream &in, vector<string> &list)
    {
        string line, word;
        int s1,s2,s3;
        stringstream ss;
        while(getline(in, line, ':'))
        {
            ss<<line.substr(line.find(' ') + 1);
            while(ss>>word)
                list.push_back(word);
            ss.clear();
        }
        sort(list);
    }
    void sort(vector<string> &list)
    {
        for(unsigned int i =  0; i < list.size(); ++i)
            for(unsigned int j = 0; j < list.size(); ++j)
                if(list[i] < list[j])
                {
                    string temp = list[i];
                    list[i] = list[j];
                    list[j] = temp;
                }
    }
    void display(const vector<string> &list)
    {
        cout<<"The file read had "<<list.size()<<" words in it"
            <<endl<<"In sorted order, they are:"<<endl;
        for(unsigned int i = 0; i < list.size();++i)
            cout<<list[i]<<endl;}
 
     
    