Ho il seguente problema con c++, in pratica per far leggere a una stringa le parole separate da uno spazio uso la funzione getline() ma mi da i seguenti errori se lo uso con i campi di una coda, in output la prima volta che esegue ciclio non ho problemi dalla seconda invece, nn so xkè mi stampa i due cout uno dopo l'altro senza farmi leggere la prima variabile, lo so mi sono spiegato male.. vi posto il codice.
codice:
#include <iostream>
#include <stdlib.h>

using namespace std;

struct cod {
    string A;
    string b;
    string c;
    cod* next;
};
cod* primo;
int main()
{ 
  int a=1;
  cod* p;
  primo = NULL;
  while (a != 0) {  
    p = new cod;
    cout<<"Inserisci autore:  ";
    getline(cin, p->A);
    cout<<"Inserisci titolo:  ";
    getline(cin, p->b);
    cout<<"Inserisci descrizione:  ";
    getline(cin, p->c);
    p->next = primo;
    primo = p;
    cout<<"Inserisci 0 per terminare l'inserimento: ";
    cin>>a;
  }  
  p = primo;
  while (p != NULL) {
      cout<<"autore: "<<p->A<<endl;
      cout<<"titolo: "<<p->b<<endl;      
      cout<<"descrizione: "<<p->c<<endl;      
      p = p->next;
  }    
  system("PAUSE");	
  return 0;
}
questo è l'output
codice:
Inserisci autore:  uno uno
Inserisci titolo:  uno
Inserisci descrizione:  uno
Inserisci 0 per terminare l'inserimento: 4
Inserisci autore:  Inserisci titolo:  due
Inserisci descrizione:  due
Inserisci 0 per terminare l'inserimento: 0
autore:
titolo: due
descrizione: due
autore: uno uno
titolo: uno
descrizione: uno
come vedete nel secondo inserimento nn mi fa leggere l'autore... mi sapete dire xkè??? grazie in anticipo.