Reading, converting, and outputting strings

I am trying to complete this assignment and I am having some issues. If someone could just point out whats going wrong I would greatly appreciate it. Below are the instructions for the assignment, then the input file, and my failed attempt.


You are given a file consisting of students’ names in the following form: lastName, firstName middleName. (Note that some students may not have a middle name.) Write a program that converts each name to the following form: firstName middleName lastName. Your program must read each student’s entire name into a variable and must contain a function that takes as input a string, consisting of a student’s name, and returns a string consisting of the altered name.
• Use the string function find to find the index of ,
• the function length to find the length of the string
• the function substr to extract the firstName, middleName and lastName.

Output the altered name into a file. This program has no user interface.


Banks,John William
Barret,Ron Edward
Drew,Lucy Marie
Perry,Mark G
Smith,John Carr


#include <iostream>
#include <fstream>
#include <string>

using namespace std;

//prototype
void getNames();

int main()
{
//call function
getNames();

system("pause");
return 0;
}

//function
void getNames()
{
//variables
int lName;
int midName;
string fullName;
ifstream inFile;
ofstream outFile;
string lastName;
string otherName;
string firstName;

//create input and output files
inFile.open("name_data.txt");
outFile.open("fullName.txt");

//loop
do
{
getline(inFile, fullName);
lName = fullName.find(",");
lastName = fullName.substr(0, lName);
midName = fullName.length();
firstName = fullName.substr(lName + 2, midName);
cout << firstName << " " << lastName << endl;
outFile << firstName << " " << midName << " " << lastName << endl;
}
while (inFile.eof() == false);
inFile.close();
}
Last edited on
What exactly is going wrong? Be specific. If you haven't yet, you can always use cout or asserts to help aid yourself in finding bugs.
Topic archived. No new replies allowed.