将文件读入结构数组

Reading a file into a struct array

本文关键字:结构 数组 文件      更新时间:2023-10-16

在没有 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++;
    }
}
我想

,你想把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大到足以容纳您将输入的尽可能多的Courses?还是会放一个停止条件?...重新思考您的程序逻辑。