il problema credo sia nell'apertura dei vari txt files "destinazioniroma", "destinazionimilano", e con il push_back, perchè il file .txt "aeroportidisponibili" me lo legge e stampa a video tranquillamente,,,,
il main è
codice:
int main(){
chooseToDo(chooseAirport());
return 0;
}
le funzioni chiamate sono
codice:
Airport* chooseAirport(){
string linea;
int aeroporto;
cout<<"scegli il numero corrispondente all'areoporto desiderato"<<endl;
ifstream read("aeroportidisponibili.txt", ios::in);
if(read){
while(!read.eof()){ //qui funziona normalmente
getline(read,linea,'\n');
cout<<linea<<endl;
}
read.close();
}
cin>>aeroporto;
switch(aeroporto){
case 1:
{
Airport*Roma;
Roma=new Airport();
vector <string> filedestination;
string name;
name="Roma";
ifstream read("destinazioniroma.txt", ios::in);
if(read){ //
si blocca qui
string str;
while(!read.eof()){
getline(read,str,'\n');
filedestination.push_back(str);
}
read.close();
}
Roma->setName(name);
Roma->setDestinations(filedestination);
return Roma;
break;
}
case 2:
{
Airport* Milano;
Milano=new Airport();
vector <string> filedestination;
string name;
name="Milano";
ifstream read("destinazionimilano.txt", ios::in);
if(read){
string str;
while(!read.eof()){
getline(read,str,'\n');
filedestination.push_back(str);
}
read.close();
}
Milano->setName(name);
Milano->setDestinations(filedestination);
return Milano;
break;
}
case 3:
{
Airport*Pisa;
Pisa=new Airport();
vector <string> filedestination;
string name;
name="Pisa";
ifstream read("destinazionipisa.txt", ios::in);
if(read){
string str;
while(!read.eof()){
getline(read,str,'\n');
filedestination.push_back(str);
}
read.close();
}
Pisa->setName(name);
Pisa->setDestinations(filedestination);
return Pisa;
break;
}
case 4:
{
Airport*Bologna;
Bologna=new Airport();
vector <string> filedestination;
string name;
name="Bologna";
ifstream read("destinazionibologna.txt", ios::in);
if(read){
string str;
while(!read.eof()){
getline(read,str,'\n');
filedestination.push_back(str);
}
read.close();
}
Bologna->setName(name);
Bologna->setDestinations(filedestination);
return Bologna;
break;
}
case '0':
{
break;
}
}return 0;
}
e poi la funzione dovrebbe proseguire con chooseToDo, che non ho ancora completato
codice:
void chooseToDo(Airport*name){
bool end=false;
cout<<"aeroporto di "<<name->getName()<<endl;
cout<<"destinazioni disponibili\n"<<endl;
for(unsigned int i=0;i<(name->getDestinations()).size();i++){
cout<<(name->getDestinations())[i];
}
do{
int choice;
cout<<"Cosa vuoi fare?"<<endl;
cout<<"1.Inserisci nuovo volo; 2.Cancella un volo;3.Prenota un volo; 0.Esci"<<endl;
cin>>choice;
Airport*airport;
switch(choice){
case 1:
{
airport->createFlight(name);
break;
}
case 2:
........
...........
-.............(altro)
}