salve a tutti,non essendo molto bravo con il linguaggio c++ ho avuto dei problemi.
il mio problema e che nel while del main non so cosa mettere come condizione della stringa
codice:
#include <iostream>
#include <string.h>


using namespace std;


typedef struct lista_spesa{


char *nome_prodotto; 


int quantita;


struct spesa *next;


}lista;


lista *aggiungi(lista *primo,char *nome,int q){
if(primo==NULL){
primo=new lista;
primo->nome_prodotto=new char[30];
primo->nome_prodotto=nome;
primo->quantita=q;
primo->next=NULL;
}else {
lista *p2;
p2=new lista;
p2->nome_prodotto=new char[30];
primo->nome_prodotto=nome;
p2->quantita=q;
p2->next=primo;
primo=p2;
}
return primo;
}




void stampa(lista *primo){


while(primo!=NULL){
cout<<"il nome del prodotto e' : "<<primo->nome_prodotto<<"\n"<<"la quantita e' : "<<primo->val<<"\n";
;
primo=primo->next;
}
}


int main(){
lista *primo=NULL;
int q;
char np[30];
cout<<"inserisci il nome del prodotto : "<<endl;
cin>>np;
cout<<"inserisci la quantita : "<<endl;
cin>>q;
while(q!=0){          /*nel while non riesco a capire cosa 
mettere per far terminare l'inserimento di stringhe*/
primo=aggiungi(primo,np,q);
cout<<"inserisci il nome del prodotto : "<<endl;
cin>>np;
cout<<"inserisci la quantita : "<<endl;
cin>>q;
}
stampa(primo);
return 0;
}
anche perchè cosi mi stampa sempre lo stesso carattere(l'ultimo inserito).