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.