Ragazzi ho un problema per me grave, nell'acquisizione di stringhe di caratteri tramite getline().

Questa è la funzione che sto utilizzando, è membro di una classe in cui sono dichiarati tutti questi attributi come array di caratteri. (per esempio char nome[15]

codice:
void tessera::set_tessera(){
	
	system("CLS");
	cout<<"Creazione nuova tessera utente"<< endl<< endl;
	cout<<"id lettore: "<< id << endl;
	cout<<"nome: ";
	cin.getline(nome,15,'\n'); 
	cout<<"cognome: ";
	cin>> cognome;
	cout<< "codice fiscale: ";
	cin>> codfis;
	cout<< "tel: ";
	cin>> tel;
	cout<< "indirizzo: ";
	cin>>indirizzo;
	cout<< "citta': ";
	cin>>citta;
	cout<< "n. documento di identita': ";
	cin>>doc;
	system("CLS");

}
Siccome mi serve acquisire le stringhe con gli spazi ho provato ad usare la cin.getline(), vedi scritta in rosso, il problema è però che in output mi stampa nome e cognome di seguito, così:

"nome: cognome: "

Non riesco a capire perché? Se uso la cin>> normale va tutto bene, però ho necessita di acquisire la stringa con gli spazi, ho provato anche a crearmi una funzione mia, ma il risultato è lo stesso...

Aiutatemi, Grazie