30/09/2018, 16:54

Không load được data từ file C++

Trong class Lecturer em định nghĩa lại operator>> như sau:

istream& operator>> (istream& in, Lecturer& L)  {

    in >> L.ID;
        getline(in, L.name);
        getline(in, L.major);
        getline(in, L.qualification);
        getline(in, L.position);

        return in;
}

Lớp Faculty chứa 1 vector. Cứ mỗi đối tượng của Lecturer được đọc vào từ file thì sẽ add nó vào Faculty thông qua hàm này:

void Faculty::addLecturer(Lecturer& L)    {

    if(L.getMajor().compare("Software engineer") == 0)
            SE_list.push_back(L);

        if(L.getMajor().compare("Network engineer") == 0)
            NE_list.push_back(L);

        if(L.getMajor().compare("System information") == 0)
            SI_list.push_back(L);
}

Trong hàm main mình xử lý việc load data như thế này:

bool loadData(Faculty& F) {

    fstream file;
    file.open(filename, ios::in);

    if(file.fail())   {
        cout << "Can't load data!" << endl;
        return false;
    }

    while(!file.eof())  {

        Lecturer L_temp;
        file >> L_temp;
        F.addLecturer(L_temp);
    }

    file.close();
    return true;
}

Nhưng khi dùng hàm loadData này thì chương trình lại dừng và không có động tĩnh gì cả. Mọi người tìm giúp mình vấn đề nó nằm ở chổ nào với!

Sao markdown nó không tự tab vào anh @ltd?

... viết 18:57 ngày 30/09/2018

Đã sửa được rồi, sửa cái overload operator >> của lớp Lecturer như sau:

istream& operator>> (istream& in, Lecturer& L)  {

    in >> L.ID;
    in.ignore(); //add this line
    getline(in, L.name);
    getline(in, L.major);
    getline(in, L.qualification);
    getline(in, L.position);

    return in;
}
Bài liên quan
0