esse é um programa pra ler a distancia entre duas cidades. Ainda tem alguns erros na lógica e na matemática, mas o que não estou conseguindo resolver mesmo é o segundo getline. O primeiro funciona direitinho, mas o segundo não dá espaço para o texto ser digitado. O que posso ter feito de errado???
#include<iostream>
#include<string.h>
#include<math.h>
#include<stdio.h>
using namespace std;
int unidade(string origem, string destiny, float distancia){
int unid;
cout<<"Unidade de medida desejada: \n 1. quiilômetros \t 2. metros ";
cin>>unid;
if(unid==1)
cout<<"A distancia entre "<<origem<<" e "<<destiny<<" é: "<<distancia<<" quilômetros.";
else if(unid==2){
distancia=distancia*1000;
cout<<"A distancia entre "<<origem<<" e "<<destiny<<" é: "<<distancia<<" metros.";
}
else{
cout<<"Unidade de medida inválida. Digite-a novamente.\n\n";
unidade(origem, destiny, distancia);
}
return 0;
}
int main(void){
float lat1, lat2, long1, long2, latitude, longitude, distancia, dla, dlo;
string origem, destiny;
cout<<"Lugar de origem:";
getline(cin, origem);
cout<<"Latitude da cidade (em graus): ";
cin>>lat1;
cout<<"Longitude da cidade (em graus): ";
cin>>long2;
cout<<"Lugar de destino:";
ESSE AQUI NÃO FUNCIONA>>> getline(cin,destiny);
cout<<"Latitude da cidade (em graus):";
cin>>lat2;
cout<<"Longitude da cidade (em graus): ";
cin>>long2;
dla=lat1-lat2;
dlo=long1-long2;
latitude=(dla*60)*1,812;
longitude=(dlo*60)*1,1812;
distancia=sqrt((pow(2, latitude)+pow(2, longitude)));
unidade(origem, destiny, distancia);
return 0;
}