Как правильно применить этот вложенный ifstream? - PullRequest
0 голосов
/ 26 апреля 2019

Я хочу использовать функцию ifstream, которая вызывает другую функцию ifstream внутри нее, но я понятия не имею, почему она не работает.Ifstream под названием first работает нормально, а второй - нет.Это первый:

ifstream archivo("civilizaciones.txt");
if(archivo.is_open()){
    while(!archivo.eof()){
        string name;
        Civilizacion a;

        getline(archivo, name);

        if(archivo.eof()){ break; }
        a.setName(name);
        arreglo.push_back(a);
        c.recuperarAld(name);
    }
}

c.recuperarAld(name) Вызывает следующую функцию в классе с объектом c:

void Civilizacion::recuperarAld(string name)
{
    ifstream aldeanoss(name + ".txt");
    if(aldeanoss.is_open()){
        while(!aldeanoss.eof()){
            Aldeano a;
            string linea;

            getline(aldeanoss,linea);

            if(aldeanoss.eof()){break;}

            a.setNombre(linea);

            getline(aldeanoss, linea);
            a.setEdad(stoul(linea));

            getline(aldeanoss, linea);
            a.setGenero(linea);

            getline(aldeanoss, linea);
            a.setSalud(stoi(linea));

            aldeanos.push_back(a);
        }
    }
}

Но этот второй, похоже, не работает, как можноЯ это исправлю?

...