Я хочу использовать функцию 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);
}
}
}
Но этот второй, похоже, не работает, как можноЯ это исправлю?