Aiuto lista getline

di il
2 risposte

Aiuto lista getline

Salve a tutti praticamente non riesco a capire perché quando eseguo questo codice mi salta sempre il primo nome.Praticamente il programma deve ricevere una lista di nomi e cognomi(che possono contenere spazi).

di seguito vi posto il codice

#include<iostream>

using namespace std;

int main(){
	int i,N;
	const int MAXCHAR=20;
	const int MAX=50;
	typedef char tipoParola[MAXCHAR+1];
	typedef struct{
		tipoParola nome;
		tipoParola cognome;
		}coppia;
	coppia coppie[MAX];
	
	cout<<"inserisci la lunghezza della lista"<<endl;
	cin>>N;
	for(i=0;i<N;i++){
		cout<<"nome"<<endl;
		cin.getline(coppie[i].nome,MAX);
		cout<<"cognome"<<endl;
		cin.getline(coppie[i].cognome,MAX);
	}
	for(i=0;i<N;i++){
	cout<<coppie[i].nome<<endl;
	cout<<coppie[i].cognome<<endl;
	}
	
	return 0;
}

2 Risposte

  • Re: Aiuto lista getline

    Perche non svuoti il buffer in input. Quindi dopo aver preso il numero N devi ignorare il contenuto del buffer con
    
    cin.ignore(256,'\n');
    
    256 è un numero preso a caso ma abbastanza grande da eliminare i dati rimasti (forse c'è rimasto solo il '\n');
  • Re: Aiuto lista getline

    Grazie mille ora funziona,scusa del disturbo =)
Devi accedere o registrarti per scrivere nel forum
2 risposte