Nark
Nark

Reputation: 47

Reading a file into a struct array

Having troubles reading a file into a struct without eof. I have all of the needed includes in my .h file and I am getting an error that says "IntelliSense: no operator ">>" matches these operand"

struct Courses
{
    string mCourseID;
    double mCourseNumber;
    double mMaxCapacity;
    double mCurrentEnroled;
};

Courses addCourse(istream &File);


Courses addCourse(istream &File)
{
    Courses sData;

    File >> sData.mCourseID;
    File >> sData.mCourseNumber;
    File >> sData.mCurrentEnroled;
    File >> sData.mMaxCapacity;

    return sData;
 }

void readCourses(Courses sCourses[], ifstream &File, int &numCourses)
{
    while (addCourse(File) >> sCourses[numCourses])
    {

        numCourses++;
    }
}

Upvotes: 2

Views: 138

Answers (1)

WhiZTiM
WhiZTiM

Reputation: 21576

I think, you want to change the signature of addCourse to this...

istream& addCourse(istream &File, Courses& sData)
{
    File >> sData.mCourseID;
    File >> sData.mCourseNumber;
    File >> sData.mCurrentEnroled;
    File >> sData.mMaxCapacity;

    return File;
}

Then, modify your other function with these modifications...

void readCourses(Courses sCourses[], ifstream &File, int &numCourses)
{
    while (addCourse(File, sCourses[numCourses]))
    {
        numCourses++;
    }
 //......

But again, is your array sCourses big enough to hold as many Courses you will input? Or will you put a stopping condition? ...rethink your program logic.

Upvotes: 3

Related Questions