简体   繁体   中英

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++;
    }
}

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM