*** Some hints for Final Exam Lab 2 *** Martin Van Buren is an anomaly, and it is not easy to extract the last name by backing up until you hit the whitespace character. His name ought to be "Van Buren" and not "Buren". Go ahead and use a generic strategy, but just write a conditional to replace "Buren" with the correct string. The functions that I used for my model solution to Final Exam Lab 2: void getLastName(President *pres){} bool isSorted(President *pres){ void sortByLastName(President *pres){} void addPartyMember(string party, Party* parties){} void printPartyTotals(Party* parties){} Notice I strongly prefer passing pointers. You can still reference array indexes with bracket([index]) notation, e.g.: cout << pres[n].lastname << ", " << pres[n].number << ", " << pres[n].party << endl; Try it! There are two different ways to get the four struct variables from each line in the file. Remember to use stoi() from cstdlib to convert the string to a proper integer. The first way is the way I showed in class and with the Dynamic List version of the Sorting Hat Simulator, to use the delimiter parameter in getline, e.g.: // getline(string, token, delimiter); getline(infile, temp, ','); s->lastname = temp; getline(infile, temp); // last value has no trailing comma, so use EOL s->firstname = temp; The second way is the cstring strtok() string tokenization function. If you want to use strtok() for tokenization, but have issues with strtok() giving you garbage characters from the getline buffer, this snippet might help you: ***** BEGIN EXAMPLE CODE ***** char str[80]; // the strtok string - 80 characters is sufficient for a line of file input in this example. int x=0; // copy the characters from the getline file input stream: while(x