2016-02-29 250 views
2

將文件讀取到沒有eof的結構中遇到問題。我所有的需要都包括在我的.h文件,我收到寫着「智能感知:沒有操作員‘的錯誤>>將文件讀入結構數組

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

請發佈[MVCE](http://stackoverflow.com/help/mcve) – erip

+0

可以更改addCourse()的原型嗎? – MikeCAT

+0

男人,這個計劃如此學術化,很多事情可能會出錯,他們不希望你處理。 –

回答

3

我想,’這些操作數相匹配」,要更改簽名addCourse這個...

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

    return File; 
} 

然後,這些修改修改其他功能...

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

但同樣,你的陣列sCourses大到足以容納麻ny Courses你會輸入嗎?或者你會提出一個停止條件? ...重新考慮你的程序邏輯。

+0

工作正常!非常感謝!限制將是十個課程,應該沒問題! – Nark