##################### #### headers.h #### ##################### #ifndef SOMETHING_H #define SOMETHING_H #include struct studentinfo { int id; string surname; string name; string year; int taken; int grad; string major; string minor; studentinfo(int, string, string, string, int, int, string, string); }; #endif ##################### #### methods.cpp #### ##################### #include #include #include #include #include #include "headers.h" using namespace std; studentinfo::studentinfo(int i, string sn, string nm, string yr, int tkn, int g, string ma, string mi) :id(i),surname(move(sn)),name(move(nm)),year(move(yr)),taken(move(tkn)), grad(move(g)),major(move(ma)) ,minor(move(mi)) {}; vector CollegeStudent::vstuds() { //remove header row junk - Adam @ http://stackoverflow.com/a/164367/6793751 vector vTmp; fstream f(rosterfile); string junk; getline(f,junk,'\n'); //skip header row string line=" "; int rktr=0; //rows while(getline(f,line,'\n')) { studentinfo *si= new studentinfo(0,"","","",0,0,"",""); stringstream ss(line); string in_line; int cktr=0; //cols vector vstest; while(getline (ss, in_line, ',')) { vstest.push_back(in_line); if(cktr==0) (*si).id= stoi(in_line); if(cktr==1) (*si).surname= in_line; if(cktr==2) (*si).name= in_line; if(cktr==3) (*si).year= in_line; if(cktr==4) (*si).taken= stoi(in_line); if(cktr==5) (*si).grad= stoi(in_line); if(cktr==6) (*si).major= in_line; if(cktr==7) (*si).minor= in_line; ++cktr; } vTmp.emplace_back(*si); //could also receive raw values w/o object or constructor (0,"blah, 0.1,'x',....) cout<